嗨我正在使用正則表達式在java中省略文本,有條件地。Java:使用正則表達式來省略文本
String pattern= "(#<omit_[a-zA-Z0-9_]+>)(.+?)(<omit_[a-zA-Z0-9_]+>)";
Mary had a #<omit_size>little <omit_size>lamb, his fleece was white as snow.
我的模式在上面的例子中工作正常,找到需要隱藏(或不)。
當我可能需要隱藏某些可能也需要隱藏的內容時,出現問題。例如爲:
Mary had a #<omit_segment> #<omit_size>little <omit_size>lamb, his <omit_segment> fleece was white as snow.
上述圖案的侷限性在於它不能其可以遵循'#<omit_'
許多字符安排之間進行區分。所以,如果我只想隱藏駐留'#<omit_segment>... <omit_segment>'
我的模式之間,而不是着眼於'#<omit_segment> ...#<omit_size> '
和,因爲這樣會打印:
Mary had a little <omit_size>lamb, his <omit_segment> fleece was white as snow.
,而不是所期望的:
Mary had a fleece was white as snow.
我認識到,正則表達式可能不成爲這樣的事情的答案,但在我撤銷很多東西之前,我想我會看看是否有什麼東西可以挽救。所以..有什麼想法?
謝謝。
我可以製作一個適用於這種情況的正則表達式,但是當您嵌套相同的標記時,它會失敗。對於任意嵌套,您應該使用堆棧跟蹤開始和結束標記。 – nhahtdh