2010-10-29 5 views
2

J'ai une regex de travail suivante en Python et j'essaie de la convertir en Java, je pensais que regex fonctionne de la même manière dans les deux langages, mais évidemment ce n'est pas le cas.Différences de syntaxe regex en Python et Java

Python regex: ^\d+;\d+-\d+

Ma Java tentative: ^\\d+;\\d+-\\d+

chaînes Exemple qui doivent être présents:

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

Quelle est la bonne solution en Java?

Merci, Tomas

+0

Il existe de nombreuses différences significatives entre Python et Java, mais votre regex ne parvient pas à trébucher sur l'un d'entre eux. – tchrist

Répondre

2

Le regex est défectueux pour l'entrée, ne savent pas ce que vous faisiez en Python, mais cela ne correspond pas à l'ensemble des chaînes dans une regex je sais.

Cela devrait faire l'affaire (personnages fuyants sont omis):

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

à savoir vous devez continuer à faire correspondre les paires de nombres séparées par des virgules.

+0

Merci, je n'ai pas besoin de faire correspondre toute la chaîne, je teste juste si le motif est dans la chaîne, donc je teste seulement la première paire séparée par une virgule et cela me suffit. –