PHP / RegEx - 第1组到完全匹配,获取哈希和空间之间的所有内容

时间:2017-05-25 23:19:07

标签: php regex

我正在尝试找到正确的正则表达式,以便从以下字符串中获取“#”和“空格”之间的所有内容......

订阅#sub_be0e1de5bc859170ebbe 9,99€专业版

......我只需要'sub_be0e1de5bc859170ebbe'。

使用以下PHP代码/正则表达式,我收到正确的结果,但我希望结果完全匹配,而不是组1。

preg_match('/#(.*?)[[:space:]]/', $transactionResponse->getDescription(), $output);
echo $output['1'];

正则表达式应该如何接收完整匹配正则表达式'sub_be0e1de5bc859170ebbe'而不是'#sub_be0e1de5bc859170ebbe'。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您可以使用

preg_match('/#\K[^[:space:]]+/', $transactionResponse->getDescription(), $output);

匹配#并将其与\K 匹配重置运算符一起省略,然后匹配除空格以外的1+个字符。 [^[:space:]]可以替换为\S(任何非空白字符)。

请参阅regex demo