0

对于多语言域,我有以下 url 字符串:

de.example.com
it.example.com
XX.example.com

并且只是:

example.com

语言代码应为 2 个字符 [az]

所以我使用 preg_match 来比较字符串是否匹配:

'!^(.*).example.com$!'

它与 anylanguage.example.com 匹配,但只有单个 domain.com 字符串有问题吗?如何将 preg_match 修改为两种条件?谢谢!

4

3 回答 3

2

如果语言总是 2 个字母:

'!^([a-z]{2})?\.?example\.com$!'
于 2013-04-28T09:09:55.593 回答
2
'!^(?:([a-z]{2})\.)?example\.com$!i'

变化:

  • .表示“任何字符”,而不是“点”
  • ?意思是“可选的”
  • [a-z]意思是“从 a 到 z 的任何字符”
  • {2}意思是“正好两个”
  • i标志的意思是“不区分大小写”
  • (?:....)是非捕获模式
于 2013-04-28T09:12:17.340 回答
1

点字符以防 domain.com 与您的正则表达式不匹配。所以我将它修改为这种格式:

'!^(.*)[\.]?domain.com$!'
于 2013-04-28T09:10:57.513 回答