为了账号安全,请及时绑定邮箱和手机立即绑定

正则表达式刚刚在 Bluehost 上崩溃

正则表达式刚刚在 Bluehost 上崩溃

PHP
米脂 2023-03-26 14:40:32
这是我的错误,似乎与服务器升级有关。preg_match(): Compilation failed: invalid range in character class // The regex that did not compilereturn preg_match("/^[\.\pL-0-9'\s]+$/u", $value);我看不到问题,也没有找到关于现在可能需要转义哪些字符的明确文档。PCRE (Perl Compatible Regular Expressions) Support => enabledPCRE Library Version => 10.32 2018-09-10PCRE Unicode Version => 11.0.0php 7.3.17
查看完整描述

2 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

您不能拥有具有 unicode 属性的范围,错误来自\pL和之间的连字符0。PCRE 的某些实现接受它作为连字符,而其他一些则不接受。

只需将其删除,或者,如果要匹配连字符,请将其转义或将其放在字符类的开头或结尾:

[.\pL0-9'\s]

或者

[.\pL\-0-9'\s]

或者

[-.\pL0-9'\s]

或者

[.\pL0-9'\s-]


查看完整回答
反对 回复 2023-03-26
?
温温酱

TA贡献1752条经验 获得超4个赞

一个猜测(是的,在 7.3.11 中得到证实)是L-0-9失败的部分。

第一个连字符是否意味着被视为文字连字符?如果是这样,请逃脱它。

如果不是,你想匹配什么?


查看完整回答
反对 回复 2023-03-26
  • 2 回答
  • 0 关注
  • 104 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信