我有一個像test{0:##}test2{Order:C}test3
文本。我需要使用正則表達式,並找到文本test
,test2
,test3
這不是{...}
內。如何找到不包含內內的文本括號
對於花括號內的文字{0:##}我用
@"{0:(.*?)}"
但是,試圖對文本不花括號內,面臨一些困難。
我有一個像test{0:##}test2{Order:C}test3
文本。我需要使用正則表達式,並找到文本test
,test2
,test3
這不是{...}
內。如何找到不包含內內的文本括號
對於花括號內的文字{0:##}我用
@"{0:(.*?)}"
但是,試圖對文本不花括號內,面臨一些困難。
代替括號以外一切匹配(喬伊所建議)時,它可能會更容易通過,只有匹配的括號表達式將字符串分割成一個陣列,的。
result = Regex.Split(teststring, "\{[^}]*\}");
如果沒有嵌套的大括號,你可以使用類似以下內容:
(?<=^|})[^{]+(?={|$)
這將使用回顧後和前瞻找到嵌入}...{
片段或通過在一個結束的字符串的開始或結束分隔。
快速PowerShell的測試:
PS> [regex]::Matches('test{0:##}test2{Order:C}test3', '(?<=^|})[^{}]+(?={|$)') | select Value
Value
-----
test
test2
test3
如果文本始終是相同的格式你爲什麼不使用Split
功能?