Php 正则表达式(.*)除了一个字符以外的任何东西
我试图在Php 正则表达式(.*)除了一个字符以外的任何东西,php,regex,pcre,Php,Regex,Pcre,我试图在/^(.*?\/$行中匹配具有模式的内容。 但是,因为(.*?已经匹配了/,所以它也匹配了任何东西,但我只希望它匹配任何东西/ 是否有一种很好的方法将/从(.*?或替代解决方案中排除?使用[^\/]: /^([^\/]*)\/$/ 见 在PHP中,您可以避免使用其他分隔符(例如~)在模式中过度跳过: $rx = '~^([^/]*)/$~'; 详细信息: ^-字符串的开头 ([^\/]*)-第1组捕获0个以上字符,而不是/ \/-文字/ $-字符串结束 注意,这个否定字符类不需要
/^(.*?\/$
行中匹配具有模式的内容。
但是,因为(.*?
已经匹配了/
,所以它也匹配了任何东西,但我只希望它匹配任何东西/
是否有一种很好的方法将/
从(.*?
或替代解决方案中排除?使用[^\/]
:
/^([^\/]*)\/$/
见
在PHP中,您可以避免使用其他分隔符(例如~
)在模式中过度跳过:
$rx = '~^([^/]*)/$~';
详细信息:
^
-字符串的开头
([^\/]*)
-第1组捕获0个以上字符,而不是/
\/
-文字/
$
-字符串结束
注意,这个否定字符类不需要惰性量词*?
,因为贪婪的*
更有效
是否有一种很好的方法来排除(.*)或替代解决方案
使用否定字符类:
[^\/]*?
叶,太棒了!将接受作为其他信息的答案:)