//(?:pattern):取消当前的这个小括号的后向引用功能,
//即:后面的"\1"后向引用时候,引用的是"PHP"这个字符串,
//而不是"Chapter|Section"这个字符串(这个正则表达式中虽然有两个括号,但却引用的是"PHP")
$pattern = "/^(?:Chapter|Section) (PHP) \1 [1-9][0-9]{0,1}$/";
$str = "Chapter PHP PHP 21";
//后面的"\1"后向引用时候,引用的是"Chapter|Section"这个字符串中的某一个,
//而不是"PHP"这个字符串(这个是正常的后向引用)
$pattern2 = "/^(Chapter|Section) (PHP) \1 [1-9][0-9]{0,1}$/";
$str2 = "Chapter PHP Chapter 21";




本文深入探讨了正则表达式中的后向引用功能,特别是如何通过使用非捕获组来改变引用行为,避免对前面捕获的子串进行重复引用。通过具体实例,解释了1引用在不同情况下的工作原理。
3614

被折叠的 条评论
为什么被折叠?



