[英]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.