我正在尝试在文档中搜索特定列的数据。我正在尝试使用:
^.{x}[data to find]
其中 x 是我想要的列数 - 1。
我不确定我是否做错了什么,或者我的正则表达式引擎是否不支持该语法。如果有帮助,我正在尝试使用 Notepad++。
2013-2014 年更新(4-5 年后)
Notepad++ v6.x通过 PCRE 库提供真正的正则表达式支持
请参阅“如何在 Notepad++ 中使用正则表达式(教程) ”(乘法运算符)
原始答案(2009 年 2 月)
我刚刚检查了最新的 Notepad++5.2 及其正则表达式功能。
我确认它没有任何重复运算符 {min,max}
可以让您指定令牌可以重复多少次。
另一种选择是:
.... [repeat '.' as many time as the number of column you want] ...[data to find]
您不需要^
:默认情况下,Notepad++ 正则表达式逐行应用,并且.
不匹配 eol 字符(\r
或\n
)
正如Asmor在评论中提到的:
Notepad++ 的所有强大功能都使用了 Scintilla 并继承了 Scintilla 的正则表达式处理,但具有有限的正则表达式功能。
您说“默认”正则表达式是逐行应用的。这意味着您可以以其他方式设置它,但据我所知(我求求您,请证明我错了!),没有办法制作多行正则表达式。
(我同意,这是一个主要限制)
Scintilla 的另一个限制是,
^
运算符实际上很重要,因为它将正则表达式锚定到行首。假设您想匹配第三列中的 3。您会想要^..3
, 并且..3
会3
在第二个之后的任何列中匹配。
如果您可以访问它,Awk 更适合这种任务。
从我能找到的文档中看,notepad++ 似乎没有 {x} 功能。