我想识别包含文件路径的文本。对于下面的文本
类型化属性App\Http\Requests\ModuleRequest::$name在初始化之前不能访问
我应该能够从消息中检测到短语App\Http\Requests\ModuleRequest
,这样就可以区别对待它们。我使用以下正则表达式。
$expression = "/((\w)*[\\]\w+)*/";
$isFound = preg_match($expression, $message)
字符串
但是它总是返回false.我在https://regex101.com上检查了同样的东西,它检测到了模式,但是我的代码无法做到这一点.我怎么能在消息中找到这个模式.我使用Php 8.2
1条答案
按热度按时间quhf5bfb1#
只是我的两分钱。
你必须正确地转义
\
,因为它是一个正则表达式元字符。也就是说,你还需要使用preg_match_all
来获取所有相关的文件路径,而不是只在一个路径上停止。字符串
正如您可能已经预料到的那样,第一个
\w+
用于获得匹配的开始,然后是\
,然后是遵循相同模式的剩余单词集合,可选的\
重复多次。型
Online Demo