用于检测字符串开头的/ en /或/ nl /的正则表达式

时间:2014-07-24 17:56:29

标签: php regex

让字符串以/ en /或/ nl /或/ ab /开头,换句话说:

/后跟两个字母,以/

结束

字符串的结尾可能有些东西,但不介意。

示例:

/nl/ -> match
/marketing/ -> no match
/marketing.html -> no match
/12/ -> no match

我试过了:^ / [a-z] / $但我认为我没有走上正轨。

2 个答案:

答案 0 :(得分:2)

您可以在PHP中使用此正则表达式:

#^/(en|nl|ab)/#

或者匹配开头的任何2个字母:

#^/[a-zA-Z]{2}/#
  • PHP允许您使用备用正则表达式分隔符,如#
  • [a-zA-Z]将匹配字母a-z或A-Z
  • [a-zA-Z]{2}将恰好匹配2个字母(a-z或A-Z)
  • /[a-zA-Z]{2}/将恰好匹配2个字母(a-z或A-Z),前后跟/

答案 1 :(得分:0)

表情问题:

  • [a-z]仅匹配字符集[a-z]
  • 中的一个字符
  • $匹配字符串的结尾,如果它是uri的第一部分,则秒/可能不在字符串的末尾。
  • 如果您使用/作为分隔符,则必须使用/对正则表达式中的任何\/进行转义(请参阅下面的示例)。

使用:

^\/([a-z]+)\/

或者如果你只想得到它,那就是两个字符:

^\/([a-z]{2})\/

示例:

$matchings = array();

$uri = '/en/user/131';
if (preg_match('/^\/([a-z]+)\//', $uri, $matchings))
{
    echo "Language: " . $matchings[1];
}

打印:

Language: en