与正则表达式匹配后抓住单词

时间:2014-06-14 05:54:23

标签: php regex

我试图通过以下内容得到这个词:

$string = 'code 10OFF75 +EXTRA';
$regex  = '/(?<=code)\s\w+/';

输出(在rubular.com上试过):

10OFF75

我想跳过带有code一词的特殊字符。说,我有字符串code: | code- | code:-然后如何抓住下一个字?

2 个答案:

答案 0 :(得分:3)

您可以尝试使用\K功能删除匹配结果左侧的所有内容:

/code\W+\K\w+/

答案 1 :(得分:2)

什么Casimir said(推荐用于PCRE)......以及其他道路选项,以防您有一天发现自己other languages that don't have \K support

有后卫

(?<=code\W+)\w+

这适用于.NET和Python的正则表达式模块,它具有无限宽度的外观。

使用捕获组

code\W+(\w+)

括号将匹配捕获到组1.这适用于JavaScript(不支持lookbehind)和大多数其他Perl风格的引擎。