当前位置:  开发笔记 > 编程语言 > 正文

正则表达式在一行的特定列中查找数据

如何解决《正则表达式在一行的特定列中查找数据》经验,为你挑选了1个好方法。

我正在尝试在文档中搜索特定列的数据.我正在尝试使用:

^.{x}[data to find]

其中x是我想要的列数 - 1.

我不确定我做错了什么,或者我的正则表达式引擎是否支持该语法.我试图使用Notepad ++,如果这是有帮助的.



1> VonC..:

更新2013-2014(4 - 5年后)

正如Alan Moore在评论中提到的那样

Notepad ++ v6.x通过PCRE库提供真正的正则表达式支持

请参阅" 如何在Notepad ++(教程)中使用正则表达式 "(乘法运算符)


原始答案(2009年2月)

我刚刚查看了最新的Notepad ++ 5.2及其regexp功能.

我确认它没有任何重复运算符 {min,max},它允许您指定令牌可以重复的次数.

http://1.bp.blogspot.com/_RrGIVCQs3RU/SHbq1B0wYlI/AAAAAAAAALI/h21UEYMEivc/s400/np%2B%2Breplace.png

另一种选择是:

.... [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,并且..33在第二列之后的任何列中匹配.

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有