php(PCRE)正则表达式有效,但只拒绝撇号[关闭]

问题描述 投票:0回答:0

我正在尝试在 php 中使用以下正则表达式来验证英文句子...

if (preg_match("/^[a-zA-Z0-9\-\,\'\x27\s]*[\.|\?|\!]{1}$/u", $string)) {      
do stuff;
} 

然而,无论我尝试过什么,它都不会接受撇号。我从反斜杠开始,然后,因为我使用的是日文键盘和 JIS 系统,认为它可能与 unicode 和 ascii 或其他东西发生冲突,所以我尝试查找它,unicode 似乎是 U+0027 ,所以我尝试使用 \u0027 和 \x27 ,如上所示,但没有任何效果。如果问题是设置某种标志或模式修饰符,那么我不确定该怎么做。据我所知,您似乎在正则表达式的末尾添加了“u”,但这似乎无济于事。我放弃。我需要专家。

编辑:将解释中的斜杠改为反斜杠。此外,真正奇怪的是正则表达式适用于 phpliveregex,但不适用于我的网站。我真的不明白。

php regex pcre
© www.soinside.com 2019 - 2024. All rights reserved.