另一個正則表達式的問題:如何獲得字符串中的一切,但一個特定的模式
我有一個字符串爲以下,
"This is a string, and I have a priority !1"
所以我想建立一個提取的正則表達式我的優先級,就是這個數字1前面有「!」。 提取它非常容易,「!([1-4])」。但是現在我想提取文本,將其排除在外!我怎樣才能做到這一點?
DETAIL:1.可以隨時隨地在字符串中,所以這也是完美的罰款:
"This is a string, !1 and I have a priority"
謝謝!
更新:我使用Scala的
我想過這個還可以,但後來我不得不後連接幾個組,因爲優先權將不會是唯一的嵌入式模式。 –
如果您有幾個嵌入式圖案,您可以像jarnbjo指出的那樣用replaceAll將它們刪除,但是如果您還需要查找和分析這些模式,那麼您已經必須掃描整個字符串至少一次。 – Yoni
爲什麼你認爲懶惰的量詞使這個正則表達式更高效?在我看來,他們可能會降低績效。另外,第二個「(。*?)」永遠不會匹配任何內容。一個懶惰的量詞作爲正則表達式中的最後一件事情從來就沒有意義;它總是**匹配允許的最小字符數,在這種情況下爲零。 –