Java 给定案例的正则表达式是什么?
我正在使用正则表达式从URL字符串中获取特定的数字模式 要求:所需字符串应以Java 给定案例的正则表达式是什么?,java,regex,Java,Regex,我正在使用正则表达式从URL字符串中获取特定的数字模式 要求:所需字符串应以-或/开头,后跟一系列数字,以/或零结尾 我试过:[-\/](\d+)(\/\$),但在www.abc.com/pages/Toms-1777/14623420046中,我想要/14623420046(即第二个出现的数字序列),但根据我的正则表达式,结果将是-1777/。我试着消极地回头看,但没有取得任何进展。我对这一切都不熟悉。请导游 测试用例:(具有匹配模式) www.abc.com/pages/Essen按摩治疗有
-
或/
开头,后跟一系列数字,以/
或零结尾
我试过:[-\/](\d+)(\/\$)
,但在www.abc.com/pages/Toms-1777/14623420046
中,我想要/14623420046
(即第二个出现的数字序列),但根据我的正则表达式,结果将是-1777/
。我试着消极地回头看,但没有取得任何进展。我对这一切都不熟悉。请导游
测试用例:(具有匹配模式)
www.abc.com/pages/Essen按摩治疗有限责任公司/130561253629638
www.abc.com/biz/finn-mccools-santa-monica-2
www.abc.com/summerset.gardens.7
www.abc.com/pages/Toms-1777/14623420046
www.abc.com/pages/The Clean Masters/1403753595526512
www.abc.com/24hfsheepsheadbay
www.abc.com/sample2NVCoolSpace
www.abc.com/pages/Jet-Set-3920/542495615847409
www.abc.com/temp.buildings.77
www.abc.com/2423453534temp/2312
www.abc.com/Ptemp Gtemp Dtemp
-189398324428792/
temp无论哪种情况,你都想要那美元。与其说是“斜杠或结束”,不如说是“可选斜杠,然后是非常不可选的结束”。所以<代码>/?$。通常不需要转义斜杠,尤其是在java正则表达式中:
Pattern.compile("[-/](\\d+)/?$")
这是这样写的:从减号或斜杠开始,一组数字,然后是0或1斜杠,最后是结尾。注意,使用find()
和notmatches()
-matches仅在整个字符串匹配时才起作用,而当-或/出现在中间时,它不会起作用
编辑:java字符串中缺少一个反斜杠。如果您想要最后一个匹配,请使用
*[-/](\d+)(/|$)
在java中,您可以从模式对象中获取所有匹配项并选择最后一个。@WiktorStribiżew您的正则表达式包含3个组,它也匹配第一个组,但我只需要其他2个组。谢谢。不知道你在说谁的正则表达式。我的只有两组。谢谢@rzwitserroot