试图在字符串开头捕获字符并换行字符串是
.V/1LBOG\n.F/AV0094/08NOV/SAL/Y\n.E/0134249356001"
我正在使用的正则表达式来自上面的字符串,我需要捕获 .V/ 和 .E/
^.[VE]/*
但它似乎只是 ctach .V/ 谁能明白为什么我认为 ^ 表示换行符以及字符串的开头?任何帮助都会非常感激,因为我已经有一段时间遇到这个问题了。如果这不是这样做的正确方法,您能否提出不同的方法。
试图在字符串开头捕获字符并换行字符串是
.V/1LBOG\n.F/AV0094/08NOV/SAL/Y\n.E/0134249356001"
我正在使用的正则表达式来自上面的字符串,我需要捕获 .V/ 和 .E/
^.[VE]/*
但它似乎只是 ctach .V/ 谁能明白为什么我认为 ^ 表示换行符以及字符串的开头?任何帮助都会非常感激,因为我已经有一段时间遇到这个问题了。如果这不是这样做的正确方法,您能否提出不同的方法。
如果你需要 .V 或 .E 试试^.(V|E)/*
or|
操作符对于检查^.V/*
或^.E/*
正则表达式 101:
^
表示字符串的开始。你猜对了。字符串只能有一个开头。
^.[VE]/*
方法 :
匹配字符串的开头,后跟任何字符(换行符除外),后跟 V 或 E,后跟 0 到 n /
(贪心)。
可能你想要这样的东西:
\.[VE].*?(?:\\n|$)
这意味着匹配一个点,然后是 V 或 E 并匹配所有内容,直到\n
或字符串结尾。
如果我错了,请发表评论。
所以.V/1LBOG\n.F/AV0094/08NOV/SAL/Y\n.E/0134249356001"
看起来像这样?
.V/1LBOG
.F/AV0094/08NOV/SAL/Y
.E/0134249356001"
如果是,那么您需要稍微更改一下您的正则表达式:
\.[VE].*
.
滥用默认情况下不匹配换行符的事实。
.
in 正则表达式匹配任何单个字符,而不是文字.
。如果要匹配文字句点,则需要对其进行转义 ( \.
)。*
不匹配任意数量的任何字符(就像大多数 shell 那样),而是匹配您放在它前面的任何内容的零个或多个实例。例如,A*
将匹配文字字母A
等AAAA
,.*
并将匹配任何字符串。
^
表示一行的开头。^\.[VE]/
将匹配.V/
and .E/
(但仅在行首)。