タイトルがあまりにも混乱しないことを願っています。私の仕事はX
のすべてをY
とZ
の間で一致させて置き換えることです。'Y'から 'Z'まで 'X'をすべて一致させてください。
私はX,Y,Z
を使用しています。これらの値は実行時に異なる可能性がありますが、それはまったく問題ではありません。実際に..しかし、一つだけX
のために働く
pattern = ".*Y.*?(X).*?Z.*";
:私がこれまで試したどのような
はこれです。私は単にそれらの "タグ"の間にすべてX
をマッチさせる方法を理解することはできません。 "タグ" を無視して、
pattern = @"((Y|\G).*?)(?!Z)(X)"
しかし、これはすべてのX
秒に一致します。
私もこれを試してみました。
私の問題を解決する正しいパターンは何ですか?事前に感謝:)
編集
いくつかのより多くの情報:
Some.text.with.dots [nodots]remove.dots.here[/nodots] again.with.dots
:
X
は、単一char
、Y
とZ
は、より現実のテスト文字列strings
あるさ
=>一致する.
秒EEN [nodots]
と[/nodots]
(注:私はここでは、XMLのような構文を使用しますが、それは私が残念ながらシンプルなXMLまたはHTMLパーサーを使用することはできません保証されていない)あなたが交換する必要がある場合は、C#では
私はより現実的なサンプル文字列を提供する必要があるのではないかと恐れています。 –
明らかに '?(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 'はグループ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)。 –