簡體   English   中英

C ++中的正則表達式

[英]Regular expressions in C++

現在,我有兩個正則表達式可以做到這一點:

Regex-1 = "(\\{(\\w+)\\})";
Regex-2 = "(\\{([^\\|]*)\\|([^\\|]*)\\|([^\\|]*)\\})"; 

我只希望能夠將兩個Regex合並為一個,以便Regex首先搜索的將是匹配項。

從概念上講,我在考慮regex-1 || 正則表達式2。 有可能將它們結合起來嗎?

謝謝。

你的意思是這樣嗎?

Regex-1_2 = "(\\{(\\w+)\\})|(\\{([^\\|]*)\\|([^\\|]*)\\|([^\\|]*)\\})";

編輯:

那么,這樣的事情?

{(((\w+)|({\w+}))\|?)*}

編輯2:

您的最后評論有幫助。 因此,從頭到尾地工作。 您知道要匹配一個大括號,所以很容易做到這一點:

{

現在,在第一個花括號之后,有兩個選項。 要么會有一個或多個字母數字(或下划線)字符,要么會有三組零個或多個字符由管道分隔。 前兩組必須是非豎線字符,而最后一組必須是非彎括號字符(因為大括號會關閉表達式)。 可以使用交替構造來表示:

{(\w+|[^|]*\|[^|]*\|[^}]*)

最后,表達式以大括號結尾:

{(\w+|[^|]*\|[^|]*\|[^}]*)}

這適用於您提供的示例。 如果您的規則不同或更具體,則需要這樣說。

暫無
暫無

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

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