Php 正则表达式匹配两个字符串相同的开始字符串和结束字符串
我有以下代码:Php 正则表达式匹配两个字符串相同的开始字符串和结束字符串,php,regex,string,Php,Regex,String,我有以下代码: <?php $subject="something"; $pattern="something"; If(preg_match($pattern,$subject)){ echo "Match is found"; }else{ echo "Match is not found"; } ?> 要点是以apple开头,以apple结尾的字符串 那么模式应该是什么呢 找到匹配项 是输出 我知道这种模
<?php
$subject="something";
$pattern="something";
If(preg_match($pattern,$subject)){
echo "Match is found";
}else{
echo "Match is not found";
}
?>
要点是以apple
开头,以apple
结尾的字符串
那么模式应该是什么呢
找到匹配项
是输出
我知道这种模式是可以改变的
"/^apple.*apple$/"
但我不想重复苹果这个词。你只需要一个苹果。尝试:
(\w+)
捕获第一个单词,不管它是什么,而不必指定“apple”作为单词。反向引用\1
告诉正则表达式解析器替换第一个捕获组中捕获的任何内容。使用的魔力,正则表达式解析器将找出如何正确匹配输入符号以满足反向引用。您不想重复子字符串“apple”
?把它放在一个变量中:$word=“apple”
,或者使用sprintf
来构建您的模式。这不是答案,因为我必须重复$word variable我想您需要这样的内容:^(\w+)\b.*\b\1$基本上,从一个单词(\w+)开始,然后是一个单词边界。(\w+)中的内容必须在结尾,这是\1我不确定php中的\1语法是什么,这是针对Python的。也许1美元?我觉得OP需要“/^(苹果)。*(?1)$/s”
(因为我不想重复同一个词苹果。)@chris85:除非苹果
实际上是其他模式的占位符,例如
。但不是很确定,这个问题很奇怪。我只是不觉得有什么问题。以主要基于意见的方式关闭它。
"/^apple.*apple$/"
/^(\w+).*(\1)$/