Php 改进子域语言的preg_匹配
对于多语言域,我有以下url字符串:Php 改进子域语言的preg_匹配,php,preg-match,Php,Preg Match,对于多语言域,我有以下url字符串: de.example.com it.example.com XX.example.com 只是: example.com 语言代码应为2个字符[a-z] 因此,我使用preg_match来比较字符串是否匹配: '!^(.*).example.com$!' 它与anylanguage.example.com匹配,但仅一个domain.com字符串有问题吗?如何修改preg_匹配以适应这两种情况?谢谢大家! 如果语言始终为两个字母: '!^([a-z]{2
de.example.com
it.example.com
XX.example.com
只是:
example.com
语言代码应为2个字符[a-z]
因此,我使用preg_match来比较字符串是否匹配:
'!^(.*).example.com$!'
它与anylanguage.example.com匹配,但仅一个domain.com字符串有问题吗?如何修改preg_匹配以适应这两种情况?谢谢大家! 如果语言始终为两个字母:
'!^([a-z]{2})?\.?example\.com$!'
如果语言始终为两个字母:
'!^([a-z]{2})?\.?example\.com$!'
如果domain.com与正则表达式不匹配,则使用点字符。因此,我将仅将其修改为以下格式:
'!^(.*)[\.]?domain.com$!'
如果domain.com与正则表达式不匹配,则使用点字符。因此,我将仅将其修改为以下格式:
'!^(.*)[\.]?domain.com$!'
变化:
表示“任意字符”,而不是“点”
表示“可选”?
表示“从a到z的任意字符”[a-z]
表示“正好两个”{2}
标志表示“不区分大小写”i
是一种非捕获模式(?:…)
表示“任意字符”,而不是“点”
表示“可选”?
表示“从a到z的任意字符”[a-z]
表示“正好两个”{2}
标志表示“不区分大小写”i
是一种非捕获模式(?:…)