开始匹配时替换字符串的结尾

时间:2017-02-15 17:18:18

标签: regex string replace

这是我在第一个文件中所拥有的:

16;01978B66;BC101;FALSE
17;0195B4E5;BC101;FALSE
18;019796C6;BC101;FALSE
19;0197D016;BC101;FALSE

这就是我在第二档中的内容

16;01978B66;BC102;FALSE
17;0195B4E5;BC102;FALSE
18;019796C6;BC102;FALSE
19;0197D016;BC102;FALSE

如果我想替换从16开始的每一行的结尾,我应该使用什么正则表达式;和18; ,从; FALSE到;是的?我想在文件中使用notepad ++替换,所以我可以替换多行16;和18;在所有文件中,不触及具有不同值的字符串中间。

我理解正则表达式,一旦我解释了它,但我搜索了几个小时,我在其他例子中迷路了......

这是我应该得到的:

16;01978B66;BC101;TRUE
17;0195B4E5;BC101;FALSE
18;019796C6;BC101;TRUE
19;0197D016;BC101;FALSE

16;01978B66;BC102;TRUE
17;0195B4E5;BC102;FALSE
18;019796C6;BC102;TRUE
19;0197D016;BC102;FALSE

我试图用

分成三组
^(17;)[a-zA-Z0-9\;]{9}[a-zA-Z0-9\;]{6}[a-zA-Z0-9\;]{5}

但替换为($ 3); TRUE is leaving me with only; TRUE`这不好。

对于知道如何更换字符串结尾的人来说,这必须是小菜一碟。

btw 0197D016; BC101;长度不变,8 digits ; 2letters3numbers ;

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

请尝试以下方法:

  

找到:^((16|18);.+?)FALSE$

     

替换为:$1TRUE