PHP预匹配,检查url中是否定义了语言

PHP预匹配,检查url中是否定义了语言,php,regex,preg-match,Php,Regex,Preg Match,我想测试url中的语言匹配 Url将类似于:http://www.domainname.com/en/#m=4&guid=%some_param% 我想检查url中是否存在现有的语言代码。我在想这些字里行间的事: ^(.*)\/\/([a-z\-.]+)(:[0-9]+)?(.*)$ 或 ^(http | https:)\/\/([a-z\-.]+)(:[0-9]+)?(.*)$ 我对正则表达式不太在行。有人能帮我或给我指出正确的方向吗 [https]+://[a-z-]+。([a-z])+/

我想测试url中的语言匹配

Url将类似于:
http://www.domainname.com/en/#m=4&guid=%some_param%

我想检查url中是否存在现有的语言代码。我在想这些字里行间的事:

^(.*)\/\/([a-z\-.]+)(:[0-9]+)?(.*)$

^(http | https:)\/\/([a-z\-.]+)(:[0-9]+)?(.*)$

我对正则表达式不太在行。有人能帮我或给我指出正确的方向吗

[https]+://[a-z-]+。([a-z])+/ 试试这个,
这是一个创建正则表达式的简单站点

如果您知道您正在测试的数据是一个url,那么我就不会麻烦将所有url部分添加到正则表达式中。保持简单,比如:
/\/[a-z]{2}\/
,它在两个正斜杠之间查找两个字母的组合。如果您需要捕获语言代码,请将其用括号括起来:
/\/([a-z]{2})\/

现有的语言代码是什么?@AvinashRaj这将是一个很长的列表,其中一些代码可能是fi、sv、no、it等。有几个regxp可以测试有效的语言标记;e、 g.或可能重复的SO问题:@feeela,这不符合我的要求,尽管这是迄今为止最简单的解决方案。。我能在这个模式上使用preg\u match\u filter来替换语言吗?如果你想替换它,请像这样使用preg\u replace:
$result=preg\u replace('/\/[a-z]{2}\/','/en/',$url)
,它会用'en'替换语言代码。谢谢,这太棒了。。不需要字符串函数