【发布时间】:2014-06-15 03:50:47
【问题描述】:
如何在与 PHP 进行预匹配后获取下一个单词。
例如,如果我有这样的字符串:
"This is a string, keyword next, some more text. keyword next-word."
我想使用preg_match 来获取“关键字”之后的下一个单词,包括该单词是否带有连字符。
所以在上面的例子中,我想返回“next”和“next-word”
我试过了:
$string = "This is a string, keyword next, some more text. keyword next-word.";
$keywords = preg_split("/(?<=\keyword\s)(\w+)/", $string);
print_r($keywords);
这只是返回所有内容,似乎根本不起作用。
非常感谢任何帮助。
【问题讨论】:
-
strpos会告诉您出现的位置,并在之后轻松找到要点。 -
strpos 只返回第一次出现。我想把所有东西都推到一个数组中
-
啊,很公平。不过,我的正则表达式经验不知道您提供的正则表达式的
<=部分。对不起。 -
@JeremyMiller FWIW,
(?<=是积极回顾的一部分。因此,如果有人使用(?<=a)b,则意味着b仅在前面有a时才匹配。更多信息:regular-expressions.info/lookaround.html
标签: php preg-match