对于多语言域名,我有以下网址字符串:
de.example.com
it.example.com
XX.example.com
而且只是:
example.com
语言代码应为2个字符[a-z]
所以我使用preg_match来比较字符串是否匹配:
'!^(.*).example.com$!'
它与anylanguage.example.com相匹配,但单个domain.com字符串有问题吗?如何将preg_match修改为两个条件?谢谢!
答案 0 :(得分:2)
如果语言总是2个字母:
'!^([a-z]{2})?\.?example\.com$!'
答案 1 :(得分:2)
'!^(?:([a-z]{2})\.)?example\.com$!i'
的变化:
.
表示“任何字符”,而非“点”?
表示“可选”[a-z]
表示“从a到z的任何字符”{2}
表示“正好两个”i
标志表示“不区分大小写”(?:....)
是一种非捕捉模式答案 2 :(得分:1)
如果domain.com与正则表达式不匹配,则使用点字符。所以我将它修改为这种格式:
'!^(.*)[\.]?domain.com$!'