我知道,这似乎是另一个重复的问题,但我无法使其发挥作用。
我的模式:\d\s"
工作正常,但是当我试图添加否定来查找不包含上述正则表达式的行时,n ++找不到任何行。我尝试(?!:\d\s")
,使用不同版本的外卡,但无济于事。
示例数据:
blah_blah:0 "More blah..."
blah_blah:0 More blah..."
(开头的空格和行尾的\n
)。
我希望能够捕捉到缺失的引用(例如,参见第二行)。
UPD :我需要反转我的正则表达式才能找到格式不正确的行。
答案 0 :(得分:2)
在标记标签中使用MenumainActivity.listitems
正则表达式(只需检查书签行选项),点击全部标记后,点击搜索 - > 书签 - > 反向书签。
如果您想要一种解决此任务的正则表达式方法,则需要使用
:\d\s"
此正则表达式将突出显示任何非空行与^(?!.*:\d\s").+
模式不匹配。
详情:
:\d\s"
- 开始行^
- 除了换行符之外的任何0 +字符之后没有(?!.*:\d\s")
,数字,空格和:
"
- 除了换行符之外的任何一个或多个字符答案 1 :(得分:1)
您可以使用此正则表达式:
(?:^|\r?\n)(?!.*?:\d\s.*?).*?(?=\r?\n|$)
它将匹配行结尾(或文档的开头/结尾)之间的所有内容,其中不包含:\d\s
。
(?:^|\r?\n)
匹配非匹配组(?:)
中的文档开头或行开头(允许UNIX和Windows行结尾)。(?!.*?:\d\s.*?).*?
匹配除.*?\:\d\s.*?
以外的所有内容。(?=\r?\n|$)
标记了行结尾\r\n
或结束$
的文档的正向前瞻。积极的前瞻是必要的,因为行结束否则已经与正则表达式的第一部分匹配。基本上,它会跳过每一行,如果这部分也匹配(在常规正则表达式中不可能重叠)。以下是JavaScript中的示例:
var regex = /(?:^|\r?\n)(?!.*?:\d\s.*?).*?(?=\r?\n|$)/g;
var text = document.getElementById("main").innerHTML; // read the line of the HTML snippet (easier to write lines in HTML);
var match = text.match(regex);
console.log(match);

<div id="main">
line:1 abc123abc123
line: abc123abc123
line:3 abc123abc123
line:4abc123abc123
line:5 abc123abc123
line6 abc123abc123
lineabc123abc123
</div>
&#13;