Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 记事本++;同时使用正则表达式和扩展搜索_Regex_Notepad++_Regex Negation_Regex Lookarounds - Fatal编程技术网

Regex 记事本++;同时使用正则表达式和扩展搜索

Regex 记事本++;同时使用正则表达式和扩展搜索,regex,notepad++,regex-negation,regex-lookarounds,Regex,Notepad++,Regex Negation,Regex Lookarounds,我需要找到所有不在字母M前面的\r\n 看来我不能这么做: \r\n[^M] 我只能在选择扩展搜索时执行\r\n,或在选择正则表达式时执行[^M];但不能同时使用。\r\n在“查找”选项卡中选中正则表达式时也有效-即,不只是在“扩展”选中时有效:为什么不在选中正则表达式时使用\r\n[^M] 给定以下测试文本 whatever M whatever G foo …,\r\n[^M]生成以下预期结果 Search "\r\n[^M]" (3 hits in 1 file) new 2 (

我需要找到所有不在字母M前面的
\r\n

看来我不能这么做:

\r\n[^M]

我只能在选择扩展搜索时执行
\r\n
,或在选择正则表达式时执行
[^M]
;但不能同时使用。

\r\n
在“查找”选项卡中选中正则表达式时也有效-即,不只是在“扩展”选中时有效:为什么不在选中正则表达式时使用
\r\n[^M]

给定以下测试文本

whatever
M
whatever
G
foo
…,
\r\n[^M]
生成以下预期结果

Search "\r\n[^M]" (3 hits in 1 file)
  new  2 (3 hits)
    Line 2: M
    Line 3: whatever
    Line 4: G

…,当然,匹配项位于匹配行的末尾。

\r\n
在“查找”选项卡中选中正则表达式时也是有效的-即,不只是在“扩展”选中时有效:为什么不在选中正则表达式时使用
\r\n[^M]

给定以下测试文本

whatever
M
whatever
G
foo
…,
\r\n[^M]
生成以下预期结果

Search "\r\n[^M]" (3 hits in 1 file)
  new  2 (3 hits)
    Line 2: M
    Line 3: whatever
    Line 4: G

…,当然,匹配项位于匹配行的末尾。

您应该改为使用此正则表达式:

\R(?!M)
说明:

  • \R
    任何Unicode换行符序列
  • (?!M)
    负前瞻性:断言“M”无法匹配

您应该改为使用此正则表达式:

\R(?!M)
说明:

  • \R
    任何Unicode换行符序列
  • (?!M)
    负前瞻性:断言“M”无法匹配

记事本++中的正则表达式支持非常差。改用另一个工具(例如grep,它也有Windows版本,或者另一个文本编辑器)。@Cameron:我们不要进入宗教辩论,因为除了NP++,我对工具没有问题;但根据世卫组织的说法,是什么引用了来源等?NP++实际上能够满足OP的需要。@J0e3gan:对不起,我不是想减少记事本++。我自己每天都用。只是我很久以前就放弃了它的正则表达式功能:-)@cameronnotepad++有着广泛的正则表达式功能,也许你正在考虑一个旧的、PCRE之前的版本。通过@adrianhh:Aha查看其正则表达式文档,这就解释了它。我从未尝试过6.0+(不知道它存在!)。谢谢你的提示。Notepad++中的正则表达式支持是出了名的差。改用另一个工具(例如grep,它也有Windows版本,或者另一个文本编辑器)。@Cameron:我们不要进入宗教辩论,因为除了NP++,我对工具没有问题;但根据世卫组织的说法,是什么引用了来源等?NP++实际上能够满足OP的需要。@J0e3gan:对不起,我不是想减少记事本++。我自己每天都用。只是我很久以前就放弃了它的正则表达式功能:-)@cameronnotepad++有着广泛的正则表达式功能,也许你正在考虑一个旧的、PCRE之前的版本。通过@adrianhh:Aha查看其正则表达式文档,这就解释了它。我从未尝试过6.0+(不知道它存在!)。谢谢你的提示。@Cameron:根据我的经验,这是一个常见的误解——在NP++查找/替换中,扩展表达式和正则表达式是互斥的:它们不在正则表达式中,它们也支持扩展覆盖。我只是把Extended看作是“Regex-lite”。@Cameron:根据我的经验,这是一个常见的误解——在NP++finds/replaces中,Extended和正则表达式是互斥的:它们不在正则表达式中,正则表达式也支持Extended-cover。我只是认为Extended是“Regex-lite”。