【问题标题】:Regular Expression fails for foreign alphabets [duplicate]外国字母的正则表达式失败[重复]
【发布时间】:2020-02-26 04:58:04
【问题描述】:

我有一个正则表达式 "/^[a-zA-Z]{2,50}$/" 用于输入字段。这非常适合英文字母表。但这不适用于外国字母。当我输入任何外语时,例如 Ağustos,正则表达式会失败。我该如何解决这个问题?

我使用 preg_match 进行测试。

【问题讨论】:

标签: php regex


【解决方案1】:

匹配来自任何语言的任何类型字母的正则表达式是\p{L},所以在您的情况下,正则表达式将是\p{L}{2,50}

您可以在 regex101 上对其进行测试以查看它是否有效

【讨论】:

  • 我已经测试过了,没有返回匹配组
  • @melvin 那么你可能没有正确实现它,你可以在 regex101.com 上测试它的 php 并将 Ağustos 标记为匹配。我会分享一个链接,但 regex101 现在似乎无法生成任何可分享的链接
  • 你确定吗? regex101.com 现在不可用。我在其他网站上测试过,没有得到任何结果
  • @melvin 是的,我在发布答案时对其进行了测试,它的加载速度比正常速度慢很多,并且没有生成可共享的链接,但它正在工作
  • @melvin 看here 了解更多信息,更好地解释了 \\pL 的使用,我也希望你记得转义所有需要的字符
猜你喜欢
  • 2015-03-26
  • 2018-04-09
  • 2023-04-02
  • 1970-01-01
  • 2020-05-16
  • 2013-06-03
  • 1970-01-01
  • 1970-01-01
  • 2013-09-27
相关资源
最近更新 更多