1
嗯,我希望標題不要太混亂。我的任務是匹配(並替換)Y
和Z
之間的所有X
。匹配所有'X'從'Y'直到'Z'
我使用X,Y,Z
,因爲這些值在運行時可能會有所不同,但這根本不是問題。
我試過到目前爲止是這樣的:
pattern = ".*Y.*?(X).*?Z.*";
哪些實際工作..但只有一個X
。我簡直無法弄清楚,如何匹配那些「標籤」之間的所有X
。
我也試過這樣:
pattern = @"((Y|\G).*?)(?!Z)(X)"
但這匹配所有X
S,忽視了 「標籤」。
什麼是解決我的問題的正確模式?感謝提前:)
編輯
一些更多的信息:
X
是一個char
,Y
和Z
是strings
更現實生活中的測試字符串:
Some.text.with.dots [nodots]remove.dots.here[/nodots] again.with.dots
=>匹配.
s位於EEN [nodots]
和[/nodots]
(注:我在這裏使用了XML的語法,但不能保證,所以我可以不幸不能使用簡單的XML或HTML解析器)
我害怕你需要提供更真實的示例字符串。 –
顯然你試過'?(X *)'......或者「X」是指字符序列? –
請參閱[本演示](http://regexstorm.net/Tester?p=%28%3f%3a%5cG%28%3f!%5e%29%7cy%28%3f%3d%5b%5ez%5d * Z%29%29%圖5b%5ezx%5D *%28X%29&I = + GH + Y + HH + X + X + X + Z)。所有'x's都在組1中。或[this one](http://regexstorm.net/Tester?p=y%28%3f%3a%5b%5ezx%5d*%28x%29%29*%圖5b%5EZ%5D * Z與I = + GH + Y + HH + X + X + X + Z)。 –