Javascript 用斜线包围的数字的正则表达式
正如标题所说,我在JavaScript中有一个(错误的)正则表达式,应该检查斜杠包围的“2”字符(在本例中)。因此,如果URL为,则正则表达式将通过 在我的情况下,我有类似的东西,正则表达式仍然通过 我不知道为什么。谁能告诉我有什么问题吗Javascript 用斜线包围的数字的正则表达式,javascript,regex,preg-match,Javascript,Regex,Preg Match,正如标题所说,我在JavaScript中有一个(错误的)正则表达式,应该检查斜杠包围的“2”字符(在本例中)。因此,如果URL为,则正则表达式将通过 在我的情况下,我有类似的东西,正则表达式仍然通过 我不知道为什么。谁能告诉我有什么问题吗 /^(.*?)\b2\b(.*?$)/ (我要告诉你,我没有写这段代码,也不知道它是如何工作的,因为我对Regex非常不熟悉)看起来太简单了,但这不应该工作吗?: /\/2\// 因为它是javascript,所以必须避开前斜杠,因为它们是正则表达式字
/^(.*?)\b2\b(.*?$)/
(我要告诉你,我没有写这段代码,也不知道它是如何工作的,因为我对Regex非常不熟悉)看起来太简单了,但这不应该工作吗?:
/\/2\//
因为它是javascript,所以必须避开前斜杠,因为它们是正则表达式字符串的分隔符
或者,如果要匹配任何数字:
/\/\d+\//
您不需要检查被斜线包围的数字。您看到的斜杠只是您的正则表达式分隔符。您可以检查两侧有单词边界
\b
的2。这适用于/2/
,也适用于=2
如果你只想让一个2被斜杠包围,试试这个
/^(.*?)\/2\/(.*?)$/
^
表示从字符串开始匹配
$
匹配到字符串末尾
(.*)
这些部分与2
前后的所有内容都匹配,并且这些部分存储在捕获组中
如果您不需要这些部分,那么Richard D是对的,正则表达式
/\/2\/
适合您。您的正则表达式应该看起来像/\D+/
它正在寻找一个2
,周围是\b
的单词边界。因此,只要2
字符被视为“单词”,它就会匹配。(.*)
只需抓取周围的文本(贪婪地),大概这样你就可以重建URL了。试着去掉问号^(.*)如果你想匹配任何开始顺序,就应该足够了。.意外地投票支持了bdares的评论,这是错误的。我想更可能的是/\/\d+\/
这也起到了作用。接受答案,因为您用\b
解释了这件事。谢谢