给出此字符串;
分隔的值
a;; z
toy;d;hh
toy
;b;;jj
z;
d;23
d;23td
;;io;
b y;b;12
z
a;b;bb;;;34
z
和此正则表达式
^(?!([^\r\n;]*);(?:(b|d))(?:;|$)).*\R
我希望获得第二名的完整记录。列不是b
或d
,并且删除了匹配的行,就像这样
toy;d;hh
;b;;jj
b y;b;12
a;b;bb;;;34
请参阅demo
第13行的第二列不是b
或d
。仍然不匹配,并显示在替换框中。
第11行具有相同的字符串,并且确实匹配。
感谢您的帮助
答案 0 :(得分:2)
那是因为您要寻找的新行序列\R
在最后一行的末尾不存在。
使用以下一项可以解决此问题:
^(?!([^\r\n;]*);(?:(b|d))(?:;|$)).*\R*
^(?!([^\r\n;]*);(?:(b|d))(?:;|$)).*(\R|$)
^(?!([^\r\n;]*);(?:(b|d))(?:;|$)).*\R{0,1}
\R*
将匹配零个或更多新行序列
\R{0,1}
将匹配零个或一个新行序列
(\R|$)
将匹配新的行序列或行尾