尝试捕获字符串开头的字符,字符串换行符
.V/1LBOG\n.F/AV0094/08NOV/SAL/Y\n.E/0134249356001"
我使用的正则表达式来自上面的字符串,我需要捕获.V /和.E /
^.[VE]/*
但它似乎只是ctach .V /任何人都可以看到为什么我认为^意味着换行符以及字符串的开头?任何帮助都会非常感激,因为我已经暂时解决了这个问题。如果这不是正确的方式,那么你可以采用不同的方式。
答案 0 :(得分:0)
如果您需要.V或.E,请尝试^.(V|E)/*
或|
运算符对检查^.V/*
或^.E/*
答案 1 :(得分:0)
正则表达式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].*
默认情况下滥用.
与新行不匹配的事实。
答案 2 :(得分:0)
.
匹配任何单个字符,而不是文字.
。如果要匹配文字句点,则需要将其转义(\.
)。 *
与任何数量的任何字符都不匹配(就像大多数shell一样),而是匹配您放在它之前的任何内容的零个或多个实例。例如,A*
将匹配字母A
,AAAA
等,而.*
将匹配任何字符串。
^
表示一行的开头。 ^\.[VE]/
将匹配.V/
和.E/
(但仅限于该行的开头)。