Php 用于检查字符串是否与区域设置类似的Regexpression\u区域性
我想检查字符串是否是类似于Php 用于检查字符串是否与区域设置类似的Regexpression\u区域性,php,regex,localization,internationalization,Php,Regex,Localization,Internationalization,我想检查字符串是否是类似于en,uk等的区域设置。我通过以下注册表执行此操作: /^[a-z]{2}$/ 但是我想用地区和文化来做这件事,比如en_-US,或者en_-en。我对正则表达式的了解太单纯了,无法做到这一点。有人能帮我吗?谢谢 给你: /^[a-z]{2}_[A-Z]{2}$/ /^[a-z]{2}_[A-Z]{2}$/ 这是对的:) 说明: ^注意文件/字符串的开头 [a-z]{2}检查en,br等 (?:[A-Z]{2})可选非捕获组以匹配en_-US,en_-en 等等
en
,uk
等的区域设置。我通过以下注册表执行此操作:
/^[a-z]{2}$/
但是我想用地区和文化来做这件事,比如en_-US
,或者en_-en
。我对正则表达式的了解太单纯了,无法做到这一点。有人能帮我吗?谢谢 给你:
/^[a-z]{2}_[A-Z]{2}$/
/^[a-z]{2}_[A-Z]{2}$/
这是对的:)
说明:
- ^注意文件/字符串的开头
- [a-z]{2}检查
,en
等br
- (?:[A-Z]{2})可选非捕获组以匹配
,en_-US
等等en_-en
- $注意文件/字符串的结尾
若要强制第二部分,请省略最新的
?
要验证哪种语言环境标识符?
不止一个
例如,在Linux上有en_US.UTF-8
BCP 47允许更复杂的东西(例如rs_Latn_rs,或ja@calendar=日语)()
如果需要PHP语言环境,则需要BCP 47语法(RFC 4646是BCP 47的一部分):
区域设置使用RFC4646语言标记进行标识
如果是这样的话,那么它可能太复杂,无法用regexp处理。Mhm,我想,我的错。@Djip它匹配,但不匹配全部。这意味着它仍然匹配。这是两个不同的概念。您的代码需要一个额外的“$”来确定匹配的结束(与“^”相反)
/^[a-z]{2}(?:_[A-Z]{2})?$/