-2
我想做一個正則表達式來匹配字符串中的多個{花括號}大括號。做一個正則表達式
{text1}是{text2}和{if {xxx} else {xxx}}。
如果我使用{。*}它將匹配第一個{和最後一個},並且所有之間沒有單獨匹配。
我需要這個以阻止在這種情況下{text1} {text2}和{if {xxx} else {xxx}}不需要觸碰的部分,但將詞語「the」保留爲「」和「解鎖。
我想做一個正則表達式來匹配字符串中的多個{花括號}大括號。做一個正則表達式
{text1}是{text2}和{if {xxx} else {xxx}}。
如果我使用{。*}它將匹配第一個{和最後一個},並且所有之間沒有單獨匹配。
我需要這個以阻止在這種情況下{text1} {text2}和{if {xxx} else {xxx}}不需要觸碰的部分,但將詞語「the」保留爲「」和「解鎖。
首先,您需要跳過大括號\{
和\}
。其次,你需要使用「不情願的量詞」而不是「貪婪的量詞」。 .*
將匹配儘可能多的字符,受正則表達式整體匹配的影響,而.*?
將匹配儘可能少的字符。所以你想要類似\({.*?\})*
。
您最初標記了問題XML,雖然在問題中沒有進一步提及XML。如果此正則表達式用於XML模式(XSD),請注意XSD正則表達式不支持不情願的量詞。在這種情況下(也可能是一個好主意)的替代方案是將.
替換爲[^}]
,它匹配除了右大括號之外的所有內容。
如果你想分析一個包含嵌套花括號的字符串,那麼正則表達式不適合作業:你需要編寫一個分析器。
你試過了什麼? – Sand
不完全確定這裏要問什麼。 _但是如果你只對匹配「內部」捲曲感興趣,可以考慮'\ {[*}] + \}' – jensgram