Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl到Java正则表达式的转换_Java_Regex_Perl - Fatal编程技术网

Perl到Java正则表达式的转换

Perl到Java正则表达式的转换,java,regex,perl,Java,Regex,Perl,我需要将一些perl正则表达式转换为Java正则表达式。我是Java新手,对Java正则表达式知之甚少 我要转换的正则表达式与此非常相似 Text =~ /(^FOO[0-9]{4})|(^BAR[0-9]{3})/ 查看字符串是否与FOO4823BAR943(FOO和4个数字或BAR和3个数字)匹配。我如何用Java重写这个?有什么简单的规则可以转换它们吗?这将非常相似 Pattern pattern = Pattern.compile("(^FOO[0-9]{4})|(^BAR[0-9]{

我需要将一些perl正则表达式转换为Java正则表达式。我是Java新手,对Java正则表达式知之甚少

我要转换的正则表达式与此非常相似

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

查看字符串是否与
FOO4823
BAR943
FOO
和4个数字或
BAR
和3个数字)匹配。我如何用Java重写这个?有什么简单的规则可以转换它们吗?

这将非常相似

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());

看看测试

要用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的指南,这里有一个开始:?当您遇到Java代码问题时,请回来。您尝试过什么?你在一个叫谷歌的现代网站上做过研究吗?和Oracle文档?我不懂PHP。
=~
是否抓取正则表达式匹配的部分?如果存在多个匹配项,会发生什么情况?@markspace这是perl。它只与模式匹配并返回true或false。这就是我需要知道的全部。模式是否匹配。Perl和Java之间存在构造差异,但对于正则表达式,构造是相同的。您是否试图在不必学习标准正则表达式函数调用的情况下执行Java正则表达式?这不是一个好的开始。