什么正则expression式会捕获从标记到行结束的所有内容?
我有一个文本文件,表示与一个单一'
。
有些行有两个引号,但是我需要从'
和”换行符的第一个实例中获取所有内容。
I AL01 ' A-LINE '091398 GDK 33394178 402922 0831850 ' '091398 GDK 33394179 I AL02 ' A-LINE '091398 GDK 33394180 400722 0833118 ' '091398 GDK 33394181 I A10A ' A-LINE 102 ' 53198 DJ 33394182 395335 0832203 ' ' 53198 DJ 33394183 I A10B ' A-LINE 102 ' 53198 DJ 3339418
'.*
我相信你需要选项Multiline。
适当的正则expression式应该是'字符跟随任何数字的任何字符(包括零字符)以string/行标记的结尾结尾:
'.*$
如果你想捕捉'char' 后面的所有内容,但是不包含在输出中,你可以使用:
(?<=').*$
这基本上说,给我所有的字符,直到行结束的字符。
编辑 :它已经被注意到,$是隐式使用。*,因此不是严格要求,因此模式:
'.*
在技术上是正确的,但是它更清楚明确,避免以后的代码维护混淆,因此我使用$。 我相信,在清晰度可能受到质疑的情况下,宣布明确的行为比依靠隐性行为总是更好的。
'.*$
从单引号( '
)开始,匹配任意字符( .
)零次或多次( *
)直到行尾( $
)。
当我在Windows(Notepad ++)中尝试“*”时,它会匹配第一个'之后的所有内容,直到最后一行结束。
捕捉所有东西,直到该行结束我input以下内容:
'.*?\n
这只会捕获从'直到该行结束的所有内容。
这将捕捉到反向引用1中的所有内容以及反向引用2中的所有内容。您可能需要根据语言(\')来跳过撇号
/^([^']*)'?(.*)$/
快速修改:如果该行没有“ – 反向引用1”,则应该抓住整个行。
^ - start of string ([^']*) - capture any number of not ' characters '? - match the ' 0 or 1 time (.*) - capture any number of characters $ - end of string
在你的例子中,我会采取以下模式:
'([^\n]+)$
使用多行和全局选项来匹配所有发生的事件。
要在比赛中包含换行符,您可以使用:
'[^\n]+\n
但是如果没有换行,这可能会错过最后一行。
对于单行,如果您不需要匹配换行符,我宁愿使用:
'[^$]+$