4
我需要知道一个字符串是否与许多不同的标准匹配。我试图通过使用一个正则表达式来解决这个问题,然后看看它是否匹配(在Java中:str.matches(myRegex);),但我无法做到。帮助构建正则表达式
的指标分析如下:
- 通过一个匹配构造的4个字母,[AZ]
- 它可以preceeded(但不是必须)的字符串 “ - ”,“+ “或 ”VC“
- 它应只匹配正好含有4个字母(以及可能前述字符)
实例字符串:
- “SHSN” - >匹配
- “+ SHRA” - >匹配
- “VCSHRA” - >匹配
- “CAVOK” - >不匹配
- “ - + SHSN” - >无匹配
这是可能做到一个单一的正则表达式吗?或者应该用代码还是两者结合来完成?
感谢,
莱纳斯
+1。但是,如果他不需要它捕获,我会将它设为非捕获组:[^(?:[+ - ] | VC)?[A-Z] {4} $' – 2010-01-31 14:03:20
非常好,谢谢! 我不熟悉术语“捕获组”,但会查找它。 – aspartame 2010-01-31 14:10:35
@aspartame:非捕获组的匹配不能被引用。所以你不能用'group(1)'来得到'(?:[+ - ] | VC)?'的匹配。 – Gumbo 2010-01-31 14:32:21