否定正则表达式Notepad ++

时间:2017-01-24 04:16:10

标签: regex notepad++

我知道,这似乎是另一个重复的问题,但我无法使其发挥作用。

我的模式:\d\s"工作正常,但是当我试图添加否定来查找不包含上述正则表达式的行时,n ++找不到任何行。我尝试(?!:\d\s"),使用不同版本的外卡,但无济于事。

示例数据:

blah_blah:0 "More blah..."

blah_blah:0 More blah..."

(开头的空格和行尾的\n)。

我希望能够捕捉到缺失的引用(例如,参见第二行)。

UPD :我需要反转我的正则表达式才能找到格式不正确的行。

2 个答案:

答案 0 :(得分:2)

标记标签中使用MenumainActivity.listitems正则表达式(只需检查书签行选项),点击全部标记后,点击搜索 - > 书签 - > 反向书签

如果您想要一种解决此任务的正则表达式方法,则需要使用

:\d\s"

此正则表达式将突出显示任何非空行与^(?!.*:\d\s").+ 模式不匹配。

详情

  • :\d\s" - 开始行
  • ^ - 除了换行符之外的任何0 +字符之后没有(?!.*:\d\s"),数字,空格和:
  • " - 除了换行符之外的任何一个或多个字符

enter image description here

答案 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;
&#13;
&#13;

相关问题