这是我的错误,似乎与服务器升级有关。
preg_match(): Compilation failed: invalid range in character class
// The regex that did not compile
return preg_match("/^[\.\pL-0-9'\s]+$/u", $value);
我看不到问题,也没有找到清晰的文档,现在可能需要转义其上的字符。
PCRE (Perl Compatible Regular Expressions) Support => enabled
PCRE Library Version => 10.32 2018-09-10
PCRE Unicode Version => 11.0.0
php 7.3.17
L-0-9
部分出了故障。第一个连字符是否应被视为文字连字符?如果是这样,请对其进行转义。
如果没有,您要匹配什么?
\pL
和0
之间的连字符。 PCRE的某些实现将其作为连字符接受,而另一些则不接受。只需将其删除,或者,如果要匹配连字符,请将其转义或将其放在字符类的开头或结尾:
[.\pL0-9'\s]
或
[.\pL\-0-9'\s]
或
[-.\pL0-9'\s]
或
[.\pL0-9'\s-]