簡體   English   中英

如何找到帶有正則表達式的“ {{**** *** **}}”的所有匹配項?

[英]How can I find all matches of '{{**** *** **}}' with a regex?

我正在嘗試擴展PHP Markdown,以允許在文本的某些部分使用{{和}}(它們將成為搜索關鍵字,如標簽)。

我有一個可以正常工作的基本正則表達式:

preg_match_all("/\{\{(.*)\}\}/", $description, $nomsTags);

在同一句子中有2個關鍵字時不起作用:

This {{is}} just an {{example}}.

它僅返回{{is}} just an {{example}}而不是' {{is}}和' {{example}} '。

如何修改正則表達式,使其在兩種情況下均可工作?

代替 。 您可以使用[^}]

量詞是貪婪的。 這意味着前面的表達式將擴展為最大可能的重復次數。 嘗試使用非貪婪量詞,而不是附加一個? 到量詞:

/\{\{(.*?)\}\}/
preg_match_all("/{{([^}]*)}}/", $description, $nomsTags);

暫無
暫無

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

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