• python和js分别在多行字符串中插入一行字符串


    问题

    一个多行字符串,"asfdb; wesfpjoing; wbfliqwbefpwqufn asfdwe safewt qwern var tgwtg ftwg "
    现在要在"qwern"这一行后插入一行“xxxyyy”,如何做?

    思路

    将该字符串以 切分变为字符串数组。遍历该数组,如果某一行字符串中包含关键字,则在后面插入xxxyyy

    python

    str = "asfdb;
    wesfpjoing;
    wbfliqwbefpwqufn
    asfdwe
    safewt
    qwern
    var
    tgwtg
    
    ftwg
    "
    
    lines = str.split('
    ')
    lines.reverse()
    newstr = ''
    for line in lines:
        #print(line)
        if "safewt" in line:
            line = line + '
    ' + "xxxxyyyy"
        newstr = line +'
    ' + newstr #倒序的
    print(newstr)
    
    lines = str.split('
    ')
    

    python使用split后字符串列表的顺序是反的,需要再一次倒序该列表。
    有以下几种方法:

    1、reversed(a), 生成了a的迭代器, for line in reversed(a)即可
    也可以将该迭代器转换为list类型:

    b = reversed(a)
    list(b)
    

    2.a[::-1],该方法将a倒序切片, 得到一个新的list, for b in s[::-1]
    3.a.reverse() 将a本身倒过来
    4、使用range,range(4,-1,-1)表示[4,-1)左开右闭区间,由于-1是开区间,所以实际上是[4,0],
    最后面的-1是每次的步进距离。 从位置4到1的区间,每次移动-1距离。左边是开始位置,而右边是结束位置。

    for i in range(len(a)-1,-1,-1):
        a[i] 
    

    javascript

    js中同样使用split()切分,但是产生的数组不会倒序。
    判断是否有子串存在的方法是indexOf(), 如果匹配失败,返回-1,匹配成功,返回第一次匹配到的初始位置。lastindexOf()则是最后一次匹配到的位置。

    var qs = require('querystring');
    
    var str = 'asfdb;
    wesfpjoing;
    wbfliqwbefpwqufn
    asfdwe
    safewt
    qwern
    var
    tgwtg
    
    ftwg
    ';
    
    /*
    for(line in str){
        console.log(line)
    }
    */
    strlist = str.split('
    ');
    newstr='';
    for(i =0;i < strlist.length;++i)
    {
        //console.log(strlist[i]);
        if(strlist[i].indexOf("wern") != -1){
            strlist[i] += "
    xxxxxyyyyy";
        }
        newstr = newstr + strlist[i] + '
    ';
    }
    
    console.log(newstr);
    
  • 相关阅读:
    nopCommerce中缓存学习
    EF
    路由
    webapi的加密方式
    生成N位数字随机数
    C# DataTable 转 实体类
    WebBrowser 打印
    文件上传控件,格式统一
    sqlserver 表循环-游标、表变量、临时表
    VB 老旧版本维护系列---迷之集合- dataTable
  • 原文地址:https://www.cnblogs.com/goto2091/p/13686374.html
Copyright © 2020-2023  润新知