试图在字符串开头捕获字符并换行字符串是
.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/(但仅在行首)。