Php 在类似URL的字符串中匹配不带斜杠的正则表达式

Php 在类似URL的字符串中匹配不带斜杠的正则表达式,php,regex,Php,Regex,我有以下正则表达式^en/cities/(.*)/$,我希望它匹配任何内容,但在第一个斜杠处停止 也就是说,如果有人设法键入该URL,则应匹配“paris”,但不匹配“paris/france” 我以为我已经用问号表示不贪婪了,但显然不是。使用否定字符类 #^en/cities/([^/]+)/$# 在正则表达式中,非贪婪性失败,因为您将最后一个斜杠锚定到了末尾($)。删除它也会使您的正则表达式工作: #^en/cities/.*?/# 在您的第一个示例中不需要?。@ridgerunner-

我有以下正则表达式
^en/cities/(.*)/$
,我希望它匹配任何内容,但在第一个斜杠处停止

也就是说,如果有人设法键入该URL,则应匹配“paris”,但不匹配“paris/france”


我以为我已经用问号表示不贪婪了,但显然不是。

使用否定字符类

#^en/cities/([^/]+)/$#
在正则表达式中,非贪婪性失败,因为您将最后一个斜杠锚定到了末尾(
$
)。删除它也会使您的正则表达式工作:

#^en/cities/.*?/#

在您的第一个示例中不需要
。@ridgerunner-Hm,我想您可能弄错了。这里的delimeter是
#
(如果你错过了),因此非贪婪量词必须寻找,直到
/
匹配为止。你完全正确。我确实错过了
/
。评论撤回。对不起+1.