写入正则表达式
我需要以下类型的字符串的正则表达式: F_E/S_(字符/数字或者它们的组合)_(字符/数字或者它们的组合)写入正则表达式
这里/意味着要么ë或S 。 它怎么写?我想匹配这种形式的一个字符串。如何在java中完成?我是Java的新手。
括号属于表达式吗?你能举个例子吗?
也许下面正则表达式工作已经:
"F_[ES]_[A-Za-z0-9]+_[A-Za-z0-9]+"
使用它以这种方式:
Pattern pattern = Pattern.compile("F_[ES]_[A-Za-z0-9]+_[A-Za-z0-9]+");
Matcher matcher = pattern.matcher(myStringToMatch);
if (matcher.matches())
{
// Yeah, Baby!
}
如果没有可能性小写字符,你可以跳过的a-z
的出现在正则表达式模式。
这里it's正则表达式
F\_[ES]{1}\_([\w\d]+)\_([\w\d]+)
'\ w'将匹配'_'字符,并且在这种情况下也可能导致奇怪的行为,因为贪婪的'+'会首先尝试使用两个字母数字组之间的'_'。另外,'[\ w \ d]'是多余的。 – 2011-03-01 18:25:53
这看起来很嘈杂。我不明白为什么下划线需要逃脱。另外,一些正则表达式引擎很古怪,[ES]本身没有量词被认为是单个字符的锚,{1}不应该被需要,但我不知道所有的实现。虽然它可读。 +1 – sln 2011-03-01 21:24:29
正则表达式将是F_ [ES] _ [A-ZA-Z0-9] + _ [A-ZA-Z0-9] +
查看Java包java.util.regex并尝试编写模式匹配方法 - 它非常简单。张贴另一个问题引用您的Java代码,如果你到达某个地方卡住..
另一种方式来写它:
F_[ES]_[^\W_]+_[^\W_]+
聪明。可能太聪明了,但无论如何+1。 :) – 2011-03-01 20:31:47
我建议有一个良好的正则表达式教程谷歌搜索。花一天早上实际学习如何使用它们,而不是要求某人针对特定问题提供具体解决方案。你提出的问题应该很容易找出你自己的问题。 – 2011-03-01 18:19:58
我强烈建议http://www.regular-expressions.info/。它具有优秀的正则表达式教程和任何级别的正则表达式熟悉的参考信息。 – 2011-03-01 18:22:33