【发布时间】:2014-02-27 20:21:15
【问题描述】:
例如,我有字符串 "my home" 和正则表达式:$reg = "/hom/"。我正在努力找出如何在匹配后(直到单词结尾)获取文本,在这种情况下,我正在寻找“e”。
另一个例子:
$string = 'soulful';
$reg = '/soul/';
=>>> 我需要'充分'。 提前谢谢你。
【问题讨论】:
例如,我有字符串 "my home" 和正则表达式:$reg = "/hom/"。我正在努力找出如何在匹配后(直到单词结尾)获取文本,在这种情况下,我正在寻找“e”。
另一个例子:
$string = 'soulful';
$reg = '/soul/';
=>>> 我需要'充分'。 提前谢谢你。
【问题讨论】:
你可以使用:
$str = 'soulful';
$reg = '/soul(\w+)/';
if ( preg_match($reg, $str, $m) )
print_r ($m);
Array
(
[0] => soulful
[1] => ful
)
【讨论】:
只需更改您的正则表达式以使用具有( 和) 的组:
$string = 'soulful';
$regex = '/soul(.+)/';
preg_match($regex, $string, $matches);
var_dump($matches);
输出:
array(2) {
[0]=> string(7) "soulful"
[1]=> string(3) "ful"
}
【讨论】:
您可以扩展您的正则表达式以匹配原始正则表达式之后的所有文本,即:
$string = 'soulful';
$regex = '/soul(.*)/';
if ( preg_match($regex, $string, $match) ) {
echo 'The text after soul is: '.$match[1].PHP_EOL;
}
【讨论】: