【问题标题】:Minimum one upper character in string [duplicate]字符串中至少有一个大写字符[重复]
【发布时间】:2018-05-08 17:10:18
【问题描述】:

如何检查字符串在编码 UTF-8 时是否包含至少一个大写字符?我用preg_match检查了这个

preg_match('/[A-Z]/', $var)

但此代码不适用于所有字符,例如 Ó、Ł。

我该如何解决?

【问题讨论】:

  • @TomUdding OP 很可能来自那里,因为接受/赞成的答案就是这里使用的内容。那里的实际答案(stackoverflow.com/a/10726645/4333555)虽然可以解决这个问题,但没有任何解释,所以我认为这不是一个非常有用的重复。

标签: php regex encoding utf-8 preg-match


【解决方案1】:

也尝试添加\p{Lu}\p{Lt} 模式,使用unicode 标志:

preg_match('/[A-Z\p{Lu}\p{Lt}]/u', $var)

【讨论】:

  • 还是不行:/
  • @polakpolkovski 对不起,模式有点错误。再试一次。
【解决方案2】:

A-Z 在 ascii 范围之间查找。您显示的字符超出该范围。使用 \p{Lu} 并使用 unicode 修饰符 u。

preg_match('/\p{Lu}/u', $var)

演示:https://regex101.com/r/WZaOCD/1/

有关更多 unicode 选项,请参阅http://php.net/manual/en/regexp.reference.unicode.php。

【讨论】:

  • 谢谢!工作正常。
猜你喜欢
  • 2021-01-26
  • 1970-01-01
  • 2018-11-07
  • 1970-01-01
  • 1970-01-01
  • 2017-01-16
  • 2013-02-21
  • 1970-01-01
相关资源
最近更新 更多