正则表达式增强c++

regular expressions boost c++

本文关键字:c++ 增强 正则表达式      更新时间:2023-10-16

尝试捕捉字符串开头的字符和换行符字符串

.V/1LBOGn.F/AV0094/08NOV/SAL/Yn.E/0134249356001"

我使用的正则表达式来自上面的字符串,我需要捕获。v/和。e/

^.[VE]/*

但是它似乎只包含。v/有人知道为什么我认为^意味着换行符以及字符串的开始吗?任何帮助将非常感激,因为我有这个问题一段时间了。如果这样做不是正确的方法,你能不能提出另一种方法

Regex 101:

^表示字符串的开始。你猜对了。字符串只能有一个开头

^.[VE]/*

表示:

匹配字符串的开始,后面跟着任何字符(换行符除外),后面跟着V或E,后面跟着0到n /(贪心)。

也许你想要这样的东西:

.[VE].*?(?:\n|$)

这意味着匹配一个点,后面跟着V或E,并匹配直到n或字符串结束的所有内容。

如果我说错了请注释。

所以.V/1LBOGn.F/AV0094/08NOV/SAL/Yn.E/0134249356001"

是这样的吗?

.V/1LBOG
.F/AV0094/08NOV/SAL/Y
.E/0134249356001"

如果是,那么你需要稍微改变一下你的正则表达式:

.[VE].*

滥用.默认不匹配换行符的事实

.在正则表达式中匹配任何单个字符,不匹配字面量.。如果要匹配文字句点,需要对其进行转义(.)。*不匹配任何数量的任何字符(就像大多数shell一样),而是匹配0个或多个您放在它前面的实例。例如,A*将匹配文字字母A, AAAA等,.*将匹配任何字符串。

^表示行首。^.[VE]/将匹配.V/.E/(但仅在行首)。

如果您需要。v或。e,请尝试^.(V|E)/*|运算符用于检查^.V/*^.E/*