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