我不能得到一个简单的正则表达式来工作,现在我有下面的Java代码大写单词和汉字的Java相匹配
String regex = "^([^A-Za-z]*?[A-Z][A-Za-z]*?)+.?";
String string = "AQUA, CETEARYL ALCOHOL, CETYL ESTERS, BEHENTRIMONIUM CHLORIDE, CETRIMONIUM CHLORIDE, AMODIMETHICONE, TRIDECETH-12, PARFUM, METHYLPARABEN, HEXYL CINNAMAL, LINALOOL, BENZYL SALICYLATE, LIMONENE, LAMINARIA DIGITATA, CHAMOMILLA RECUTITA , ANICOZANTHOS FLAVIDUS, SODIUM BENZ0ATE, PHENOXYETHANOL, ETHYLPARABEN, BUTYLPARABEN, PROPYLPARABEN, P0LYS0RBATE 20, CI 19140, CI 14700.";
System.out.println(string.matches(regex));
的问题是,执行永远不会结束。 请仅使用我的正则表达式来查看我如何失败。我需要的东西听起来很简单: - 可以有任何文字。 - 本文中的所有单词均应为大写。 - 如果有单个字符,它们也应该是大写字母。 - (数字,逗号,...)之间有什么要始终一致。 请参阅上面的复杂示例。 简单是:
Test, Test, Test = true Test, test, Test = false Test, 7-Test Test, Test = true Test, 7-Test test, Test = false na = false NA = true N/A = true PHENOXYETHANOL, P0LYS0RBATE 20, CI 19140, CI 14700. = true
非常感谢!
我不明白这一个:测试,7-测试测试,测试=错误。它有逗号,它应该是真的不是? – jocelyn
有一个单词'Test [test]'不是大写字母。 – Alex
您是否考虑过使用[您之前的问题]中描述的方法(http://stackoverflow.com/questions/12194456/regular-expression-hangs-java-matcher) – Edd