Javascript正则表达式与Java正则表达式
我用Javascript编写了一个正则表达式,效果非常好:Javascript正则表达式与Java正则表达式,javascript,java,regex,Javascript,Java,Regex,我用Javascript编写了一个正则表达式,效果非常好:/:([\w]+):/g 我正在努力将我的javascript应用程序转换为java,我知道如何摆脱\using\e./:([\\w]+):/g,但我的测试仍然没有返回与字符串“hello:testsmilie:你好吗?” 在javascript中,它返回“:testsmilie:”很好,所以我不确定区别是什么。任何帮助都将不胜感激 您应该了解如何创建Javascript正则表达式,因为/是实际正则表达式的分隔符,g是全局正则表达式的修饰
/:([\w]+):/g
我正在努力将我的javascript应用程序转换为java,我知道如何摆脱\using\e./:([\\w]+):/g
,但我的测试仍然没有返回与字符串“hello:testsmilie:你好吗?”
在javascript中,它返回“:testsmilie:”很好,所以我不确定区别是什么。任何帮助都将不胜感激 您应该了解如何创建Javascript正则表达式,因为
/
是实际正则表达式的分隔符,g
是全局正则表达式的修饰符
在Java中,等价物是::([\\w]+):
,不需要全局标志,因为只需多次调用.find()
,即可获得所有匹配项
您应该看看哪个网站是测试正则表达式的好网站您的java正则表达式可以是:
Pattern.compile(":[^:]+:")
哪个匹配:
后跟一个或多个无两个点:
后跟:
或者,如果您想使用\w
,您可以使用:
Pattern.compile(":\\w+:")
如果您注意到不需要组
()
的括号,因此要获得结果,您可以使用:
System.out.println(m.group());
Java使用的规则与JavaScript不同,很像PHP和JavaScript,JS不允许使用look behinds和其他类型,谷歌可以消除这些差异
System.out.println(m.group());