[英]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.