我正在尝试在文档中搜索特定列的数据.我正在尝试使用:
^.{x}[data to find]
其中x是我想要的列数 - 1.
我不确定我做错了什么,或者我的正则表达式引擎是否支持该语法.我试图使用Notepad ++,如果这是有帮助的.
更新2013-2014(4 - 5年后)
正如Alan Moore在评论中提到的那样
Notepad ++ v6.x通过PCRE库提供真正的正则表达式支持
请参阅" 如何在Notepad ++(教程)中使用正则表达式 "(乘法运算符)
原始答案(2009年2月)
我刚刚查看了最新的Notepad ++ 5.2及其regexp功能.
我确认它没有任何重复运算符 {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的正则表达式处理,其正则表达式功能有限.
你说"默认情况下"正则表达式逐行应用.这意味着你可以设置它,但据我所知(并且请求你,证明我错了!),没有办法制作多行正则表达式.
(我同意,这是一个主要限制)
Scintilla的另一个限制,
^
操作员实际上很重要,因为它将正则表达式锚定到行的开头.假设您想在第三列中匹配3.你会想要的^..3
,并且..3
会3
在第二列之后的任何列中匹配.