2

我正在使用 Notepad++ 并尝试在本地处理日志文件并尝试使用正则表达式函数从包含以下内容的文件中提取任何数据:-1 或?我对 reg 表达式不是很好,但认为这样的事情可以解决问题,但无济于事:

 ^.*\b(-1|?)\b.*$
4

4 回答 4

3

你可以在这里阅读:

你如何使用 Notepad++ 正则表达式管道 | 对于超过一个字符的字符串?

Notepad++ 不支持管道 '|' 低于 6.1.1 版本的正则表达式中的字符。更新您的 notepad++ 版本并使用正则表达式:

^.*(\-1|[\?]).*$
于 2012-05-28T09:29:53.207 回答
2

你需要逃避吗?字符使用 . 我会为你分解它,以便它帮助你学习正则表达式。

^(.*(?:-1|\?).*)$
  • (?:-1|\?)- 匹配的非捕获组?或 -1
  • (.*(?:-1|\?).*)- 包裹在一个匹配任何东西的捕获组中然后?或 -1 然后是任何东西

使用行边界,这将导致捕获的行列表包含 -1 或 ?

于 2012-05-28T09:36:48.937 回答
1

试试这个正则表达式:

(.*-1.*|.*\?.*)
于 2012-05-28T09:30:56.930 回答
1

首先,如果你想 find ?,你应该转义它\? 其次,我不知道 Notepad++ 但通常-不被认为是一个单词符号,因此 firs\b不能作为“单词的开头”,应该被删除,同样is for?既不是单词的开头也不是单词的结尾,因此对于它来说两者\b都是无用的。

于 2012-05-28T09:32:59.253 回答