Php 用于在字符串开头检测/en/或/nl/的正则表达式
让我们看看字符串是否以/en/或/nl/或/ab/开头,换句话说: /后跟两个字母,以/ 在字符串的末尾可能有一些东西,但这并不重要 示例:Php 用于在字符串开头检测/en/或/nl/的正则表达式,php,regex,Php,Regex,让我们看看字符串是否以/en/或/nl/或/ab/开头,换句话说: /后跟两个字母,以/ 在字符串的末尾可能有一些东西,但这并不重要 示例: /nl/ -> match /marketing/ -> no match /marketing.html -> no match /12/ -> no match 我试过:^/[a-z]/$但我认为我的思路不对 您可以在PHP中使用此正则表达式: #^/(en|nl|ab)/# 或匹配开头的任意两个字母: #^/[a-zA-Z
/nl/ -> match
/marketing/ -> no match
/marketing.html -> no match
/12/ -> no match
我试过:^/[a-z]/$但我认为我的思路不对 您可以在PHP中使用此正则表达式:
#^/(en|nl|ab)/#
或匹配开头的任意两个字母:
#^/[a-zA-Z]{2}/#
- PHP允许您使用诸如
#
将匹配字母a-Z或a-Z[a-zA-Z]
将恰好匹配2个字母(a-Z或a-Z)[a-zA-Z]{2}
将精确匹配前面和后面的两个字母(a-Z或a-Z)/[a-zA-Z]{2}/
/
仅匹配字符集中的一个字符[a-z]
[a-z]
匹配字符串的结尾,如果它是uri的第一部分,则秒$
可能不在字符串的结尾/
- 如果使用
作为分隔符,则必须使用/
对正则表达式中的任何\/
进行转义(请参见下面的示例)/
^\/([a-z]{2})\/
例如:
$matchings = array();
$uri = '/en/user/131';
if (preg_match('/^\/([a-z]+)\//', $uri, $matchings))
{
echo "Language: " . $matchings[1];
}
印刷品:
Language: en
有什么特别的原因让你用octothorpes封装你的正则表达式吗?没有特别的原因,也可能是
~^/[a-zA-Z]{2}/~
。我的想法是使用任何对我来说同样随意的东西。既然代码已经在markdown中标记为代码,为什么还要有任何东西呢?或者,如果有什么问题,因为问题被标记了,那么引号不是更有意义吗?是的,在PHP中,regex总是用在引号中,比如“#^/[a-zA-Z]{2}/#”
Language: en