Regex 如何在正则表达式中组合行?
因此,我对正则表达式是新手,我只使用一个简单的文本编辑器来学习它们。我有以下文件Regex 如何在正则表达式中组合行?,regex,sublimetext,Regex,Sublimetext,因此,我对正则表达式是新手,我只使用一个简单的文本编辑器来学习它们。我有以下文件 84544484N 32343545M 32334546E 34456434M 我试图将每一对行合并成一个制表符分隔的行 结果应该是: 84544484N 32343545M 32334546E 34456434M 我写了以下内容: Search: (.*?)\n(.*?)
84544484N
32343545M
32334546E
34456434M
我试图将每一对行合并成一个制表符分隔的行
结果应该是:
84544484N 32343545M
32334546E 34456434M
我写了以下内容:
Search: (.*?)\n(.*?)
Replace: \1\t\2
这不起作用,请有人解释为什么,并给我正确的解决办法。谢谢 模式(.*?)\n(.*?模式永远不会正常工作,因为模式末尾的(.*?
总是返回一个空字符串(因为*?
是一个惰性匹配量词,如果它可以返回零个字符(并且可以),它将返回。请使用贪婪匹配并调整模式,如下所示:
(.+)\r?\n *(.*)
或者-由于SublimateText使用Boost regex-您可以将任何换行符序列与\R
匹配:
(.+)\R *(.*)
并替换为\1\t\2
。注意,我在第一个捕获组中将*?
替换为+
,因为您需要匹配非空行
正则表达式细分:
-除换行符以外的一个或多个字符(尽可能多),最多(.+)
-换行符序列(\R
,\R\n
或只是\R
)\n
-文本空间,零次或多次出现*
-第2组:换行以外的零个或多个字符(尽可能多)(.*)
什么是文本编辑器?Sublime@WiktorStribiżewc请您解释一下什么是\r以及为什么在这里使用它,THANKSS
\r
是回车符,在正则表达式模式中,我对它应用了一个?
量词,意思是匹配它的一次或零次出现。使用\r
更有效-它将匹配所有类型的行休息。工作起来就像一个老板,有精彩的文字3,谢谢@WiktorStribiżew!