簡體   English   中英

PHP preg_match正則表達式用於匹配模式中的上一個組?

[英]PHP preg_match regex for matching a previous group in the pattern?

我在Stackoverflow中看到了這個問題,但答案沒有幫助。 實際上,我需要在我的正則表達式模式中引用上一組。

  $s = "1:1";

  $p = "/([0-9]):\1/";
  echo preg_match($p, $s); // False

要么

  $p = "/([0-9]):$1/";
  echo preg_match($p, $s); // False

轉義反斜杠

<?php
  $s = "1:1";
  $p = "/([0-9]):\\1/";
  echo preg_match($p, $s);
  // Output: 1

(所有內容均寫在評論中,但無論如何)

用雙引號引起來的字符串由php解釋。 在這種情況下,\\ 1變成八進制1。要使斜杠需要自己轉義\\\\

或者,您可以在單引號'/([0-9]):\\1/'使用未解釋的字符串

直接使用$p = "/([0-9]):?1/";

暫無
暫無

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

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