是否可以将单独的模式组合并到正则表达式中的一个组

时间:2015-12-14 10:23:49

标签: php regex

例如:

"I am living in Germany." - (I\sam)\sliving\s(in\sGermany)

这给出了

1 - I am
2 - in Germany

是否可以从preg_match获取字符串“我在德国”?

2 个答案:

答案 0 :(得分:1)

您无法在一次匹配操作中匹配非连续文本。

相反,您可以使用preg_replace围绕要保留的子模式捕获组,并使用反向引用在替换模式中恢复它们。

所以,使用

正则表达式:'~(I\sam\s)living\s(in\sGermany)~'
替换:'\1\2'

demo

答案 1 :(得分:0)

您也可以在没有正则表达式的情况下获得输出:

$mystr  = "I am living in Germany.";
$res = str_replace(".", "", "".join(explode("living ", $mystr)));
print $res;