【问题标题】:Regex diacritics problem正则表达式变音符号问题
【发布时间】:2011-08-13 04:58:18
【问题描述】:

我正在尝试验证一些用户输入,但我的正则表达式在遇到变音符号时失败。我说的是ăĂ之类的字符。

我应该在正则表达式代码中添加什么,以便它还应该从输入中验证变音符号?

谢谢!

P.S.:如果重要的话,我使用的是带有 CakePHP 框架的 PHP。

这是我目前用于验证用户输入的代码:return preg_match('|^[0-9a-zA-Z_-\s]*$|', $value);

【问题讨论】:

  • 如果您不告诉我们您的正则表达式是什么,我们如何为您提供帮助?
  • 抱歉,忘记添加了!

标签: php regex cakephp diacritics


【解决方案1】:

假设您想匹配字母,那么允许 Unicode 字母应该会有所帮助:

例如,如果您想匹配一系列字母,请使用/\p{L}+/u。不要忘记/u (Unicode) 修饰符。

在你的情况下:

return preg_match('|^[0-9\p{L}_\s-]*$|u', $value);

应该可以。

顺便说一句,使用| 作为正则表达式分隔符可能不是一个好主意。对于当前的正则表达式 / 就可以了;其他替代方案是~#,因为它们很少出现在文本中并且在正则表达式中没有任何特殊含义。

【讨论】:

  • 非常感谢您的详细解释!
猜你喜欢
  • 2014-03-27
  • 2017-06-17
  • 2012-03-05
  • 1970-01-01
  • 2015-10-16
  • 2013-05-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多