簡體   English   中英

PHP preg_match_all同一行

[英]PHP preg_match_all same line

在使用正則表達式時遇到麻煩(它們不是我的強項)。 我正在嘗試匹配{{和}}之間的所有字符串,但是如果在同一行上出現一組括號,則將其視為一次匹配...例如:

$string = "
  Hello, kind sir
  {{SHOULD_MATCH1}} {{SHOULD_MATCH2}}
  welcome to
  {{SHOULD_MATCH3}}
  ";

preg_match_all("/{{(.*)}}/", $string, $matches);

var_dump($matches); // returns arrays with 2 results instead of 3

收益:

array(2) {
  [0]=>
  array(2) {
    [0]=>
    string(35) "{{SHOULD_MATCH1}} {{SHOULD_MATCH2}}"
    [1]=>
    string(17) "{{SHOULD_MATCH3}}"
  }
  [1]=>
  array(2) {
    [0]=>
    string(31) "SHOULD_MATCH1}} {{SHOULD_MATCH2"
    [1]=>
    string(13) "SHOULD_MATCH3"
  }
}

有什么幫助嗎? 謝謝!

非貪婪形式*?替換*量詞*?

這將使其盡可能少地匹配,同時仍允許整個表達式匹配,這與當前的盡可能多的匹配行為不同。

您可以使用以下一種模式。

  1. {{(.+?)}
  2. {{([^}]+)
  3. {{(\\w+)
  4. {{([[:digit:][:upper:]_]+)
  5. {{([\\p{Lu}\\p{N}_]+)

暫無
暫無

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

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