PHP正则表达式 - 正斜杠和交替的问题

waf*_*ffl 1 php regex wordpress magento

我有一系列的网址如下:

http://www.somesite.com/de/page
http://www.somesite.com/de/another
http://www.somesite.com/de/page/something
http://www.somesite.com/de/page/bar
Run Code Online (Sandbox Code Playgroud)

我需要搜索文本块并拉动语言并使用正则表达式,如下所示:

/(de|en|jp)/
Run Code Online (Sandbox Code Playgroud)

我正试图找到并替换,通过preg_replace并包括正斜杠:

/de/
/en/
/jp/
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用,也不包括斜杠.我试过逃避斜线\,\\.我试过把针放进去,preg_quote但这打破了交替.

我觉得我在这里错过了一些非常简单的东西!

编辑:

全功能通话:

preg_replace("/(de|en|jp)/", "/".$newLang."/", $url);
Run Code Online (Sandbox Code Playgroud)

-

(标记为magento和wordpress,因为我试图解决当两个CMS都是多语言时统一导航菜单的问题)

Nie*_*sol 6

您不必使用斜杠作为分隔符,但您必须有一些分隔符.试试这个:

if( preg_match("(/(de|en|jp)/)",$url,$m)) {
    $lanuage = $m[1];
}
Run Code Online (Sandbox Code Playgroud)