2010-10-29 129 views
2

我在Python中有一个以下的工作正则表达式,我试图将其转换为Java,我认为这两种语言的正则表达式工作原理是相同的,但显然它不是。在Python和Java中的正则表达式语法差异

Python的正则表达式:^\d+;\d+-\d+

我的Java尝试:

3;1-2,2-3 
68;12-15,1-16,66-1,1-2 

什么是Java的解决方案:应匹配^\\d+;\\d+-\\d+

例字符串?

谢谢,托马斯

+0

Python和Java之间有很多显着的区别,但是你的正则表达式并没有设法在任何一个上面发现。 – tchrist 2010-10-29 01:00:01

回答

2

的正则表达式是错误的输入,不知道你在Python在做什么,但是这并不匹配,我知道任何正则表达式的整个字符串。

这应该做的伎俩(转义字符将被忽略):

^\d+;(\d+-\d+,?)+ 

即您需要继续匹配由逗号分隔的数字对。

+0

谢谢,我不需要匹配整个字符串,我只是测试模式是否在字符串中,所以我只测试第一个由逗号分隔的对,这对我来说已经足够了。 – 2010-10-29 00:19:18