Java 正则表达式模式在 Linux (Amazon Beanstalk) 下不起作用

标签 java regex linux amazon-elastic-beanstalk

我有一个 java 正则表达式模式,它在 Mac OSX 中的 Tomcat7 下完美运行,但在 Amazon Linux 下(在 Amazon Elastic Beanstalk 上使用)它永远不会匹配

这是模式:

(\d\.)(([^\d\s])([a-z/\s]*))

下面是一些文本示例:

  1.AAAA/BBBBBB 

这是Java代码:

Pattern pattern = Pattern.compile(PATTERN, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
    //....
}

我不明白这方面的平台差异是什么。有人吗?

已编辑

更多信息:同一个 .war 文件,在我的 Windows、Mac OS 平台下运行完美,但在 Amazon Beanstalk 和 Ubuntu Linux 下不行。 我认为@study 是对的,也许是因为 OpenJDK,但我现在在 windows 下,目前无法测试它。

这是测试它的代码: https://gist.github.com/edpichler/6766187

最佳答案

我不认为 Tomcat 版本会导致不同的结果,所以唯一的区别是 JRE 版本。

在 elastic beanstalk tomcat 7 x64 中,您使用的是 OpenJDK 1.6.0_24

[ec2-user@ip-10-121-5-162 ~]$ java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.4) (amazon-52.1.11.4.46.amzn1-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)

在 OS X 10.8.5(带有 OS X 2013-004 和 10.6 更新)中,您使用的是 Oracle JDK 1.6.0_51

server:bin study$ java -version
java version "1.6.0_51"
Java(TM) SE Runtime Environment (build 1.6.0_51-b11-457-11M4509)
Java HotSpot(TM) 64-Bit Server VM (build 20.51-b01-457, mixed mode)

关于Java 正则表达式模式在 Linux (Amazon Beanstalk) 下不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19066631/

相关文章:

java - 与 java 和 .net 相比,mcrypt blowfish php 的结果略有不同

javascript - 修复正则表达式以不从文本中重新抓取旧 URL (JS)

php - preg_match 到 domain.tld

c++ - 如何在 C++ 中将波斯字符转换为十进制值?

java - ExecutorService FixThreadPool 作为共享参数不并行运行

Java智能卡认证PKI

java - Cipher.getInstance() 和 Cipher.getInit() 用于 AES 加密的随机 IV 情况下的每条消息

regex - 如何在 OS X 上使用 sed 插入制表符?

json - apt-vim 插件 FileNotFoundError

c++ - Poco C++ 库 : "Not found: mysql"