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.