正则表达式查找和提取符合过滤条件的行

时间:2012-05-28 09:24:48

标签: regex notepad++

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

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

4 个答案:

答案 0 :(得分:3)

你可以在这里阅读:

How do you use Notepad++ regex pipe | for strings longer than one character?

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

^.*(\-1|[\?]).*$

答案 1 :(得分:2)

你需要逃避吗?使用a的角色。我会为你分解它,这样可以帮助你学习正则表达式。

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

使用行边界,这将产生包含-1或?

的捕获行列表

答案 2 :(得分:1)

试试这个正则表达式:

(.*-1.*|.*\?.*)

答案 3 :(得分:1)

首先,如果你想找到?,你应该将其转义\? 其次,我不知道Notepad ++,但一般-不被视为单词符号,因此第一\b不能作为“单词的开头”而应该删除,同样适用于?这既不是开头也不是结尾,所以\b都是无用的。