Perl到Java Regex转换

时间:2015-05-18 21:36:34

标签: java regex perl

我需要将一些perl正则表达式转换为Java正则表达式。我是Java新手,对Java正则表达不太了解。

我要转换的正则表达式与此

非常相似
Text =~ /(^FOO[0-9]{4})|(^BAR[0-9]{3})/

查看字符串是否与FOO4823 BAR943FOO和4个数字或BAR和3个数字匹配)匹配。我将如何用Java重写它?是否有任何简单的规则来转换它们?

2 个答案:

答案 0 :(得分:1)

它非常相似。

Pattern pattern = Pattern.compile("(^FOO[0-9]{4})|(^BAR[0-9]{3})");
System.out.println(pattern.matcher("FOO4823").find());
System.out.println(pattern.matcher("BAR943").find());

查看测试here

答案 1 :(得分:0)

要用Java重写它,你想要像

这样的东西
String text = ...
Matcher matcher = Pattern.compile("(^FOO[0-9]{4})|(^BAR[0-9]{3})").matcher( text );
if( matcher.find() ) {  
  // ... it was found
}

至于将Perl转换为Java的指南,有一个pretty good discussion in this StackOverflow question.