簡體   English   中英

正則表達式提升C ++

[英]regular expressions boost c++

試圖在字符串的開頭和換行符處捕獲字符

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

我正在使用的正則表達式來自上面的字符串,我需要捕獲.V /和.E /

^.[VE]/*

但這似乎只是ctach .V /,誰能明白我為什么以為^意味着換行以及字符串開頭? 我已經很久沒有遇到任何問題了,對您的幫助將不勝感激。 如果這不是正確的方法,那么您可以提出另一種方法。

如果需要.V或.E,請嘗試^.(V|E)/*| 運算符可用於檢查^.V/*^.E/*

正則表達式101:

^表示字符串的開頭。 您猜對了。 只能有一個字符串開頭。

^.[VE]/*

表示:

匹配字符串的開頭,后跟任何字符(換行符除外),然后是V或E,然后是0至n / (貪婪)。

可能您想要這樣的東西:

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

這意味着匹配一個點,后跟V或E並匹配所有內容,直到\\n或字符串結尾。

如果我錯了,請發表評論。

因此.V/1LBOG\\nF/AV0094/08NOV/SAL/Y\\nE/0134249356001"

看起來像這樣嗎?

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

如果是,那么您需要稍微修改一下正則表達式:

\.[VE].*

濫用事實. 默認情況下不匹配換行符。

. 在正則表達式中匹配任何單個字符,而不是文字. 如果要匹配立即數,則需要對其進行轉義( \\. )。 *不匹配任何數目的任何字符(就像大多數shell一樣),而是匹配零個或多個您放置在其前面的任何實例。 例如, A*將匹配文字字母AAAAA等,而.*將匹配任何字符串。

^表示行的開頭。 ^\\.[VE]/將匹配.V/.E/ (但僅在行的開頭)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM