我正在尝试找到正确的正则表达式,以便从以下字符串中获取“#”和“空格”之间的所有内容......
订阅#sub_be0e1de5bc859170ebbe 9,99€专业版
......我只需要'sub_be0e1de5bc859170ebbe'。
使用以下PHP代码/正则表达式,我收到正确的结果,但我希望结果完全匹配,而不是组1。
preg_match('/#(.*?)[[:space:]]/', $transactionResponse->getDescription(), $output);
echo $output['1'];
正则表达式应该如何接收完整匹配正则表达式'sub_be0e1de5bc859170ebbe'而不是'#sub_be0e1de5bc859170ebbe'。
感谢您的帮助!
答案 0 :(得分:0)
您可以使用
preg_match('/#\K[^[:space:]]+/', $transactionResponse->getDescription(), $output);
匹配#
并将其与\K
匹配重置运算符一起省略,然后匹配除空格以外的1+个字符。 [^[:space:]]
可以替换为\S
(任何非空白字符)。
请参阅regex demo。