簡體   English   中英

正則表達式,{}之間的字符匹配

[英]Regular Expression, match characters between { }

我正在嘗試查找在{}之間包含<或>的文本。 這是在HTML內,我很難使它變得“笨拙”。

所以我想找到與這些字符串匹配的文本:

{test > 3}
{testing >= 3 : comment}
{example < 4}

我已經嘗試了許多正則表達式,但是所有這些似乎都在結束}之后並包括帶有<或>的HTML。 例如,我嘗試了此正則表達式

{.*?(<|>).*?}

但是最終匹配這樣的文本:

{if true}<b>testing</b>{/if}

看起來很簡單,{}之間的任何包含<或>的文本。

這應該可以解決問題:

{[^}]*(<|>).*}

更加高效的正則表達式(因為沒有非貪婪匹配):

'#{[^}<>]*[<>]+[^}]*}#'

第三個字符類中沒有括號的原因是,它匹配具有多個>的字符串(例如{foo <> bar} ...

{[^}]*?(<|>)[^{]*?}

試試看 請注意,我替換了. 的字符類表示除左/右花括號外的所有內容。

您是否嘗試過使用“不滿意(U)”開關?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM