正则表达式 - 如果某个字符":"我如何继续查找字符串?找到了吗?

时间:2015-10-16 12:42:31

标签: ruby regex excel

我想检查用户是否输入了正确的Excel列位置。通常,excel列可以具有以下内容:

  • A
  • AA
  • BZ
  • AAA
  • BBB
  • AAAA
  • .....

但是,如果我想要一系列这样的列:

  • 甲:F
  • AB:AD
  • CD:CF
  • .....

如何创建一个正则表达式,用于检查字符串是否与正确的列位置匹配。如果冒号":"被发现,它会继续检查其余部分吗?

所以这将是正确的值:

  • A
  • AB
  • 阿位:Z
  • BB:CC
  • ZA:AAA

更新1:这是我尝试过的但是失败了。   - /([a-zA-Z] {1,4}:[a-zA-Z] {1,4})/

更新2:这是我预期但可以改进的。   - /([A-Z] {1,2}:?[A-Z] {1,2})/

谢谢!

1 个答案:

答案 0 :(得分:1)

我觉得你很亲密。如果你添加一行开头和行尾分隔符,那么让第二个分组可选,你可能得到你需要的东西:

^([a-zA-Z]{1,4}(?::[a-zA-Z]{1,4})?)$

我所做的更改是将^添加到开头,$添加到结尾,然后使用(?: )?围绕第二个群组,这样它就不会将第二个群组拉出来个人比赛,也是可选的。

以下是Rubular链接供参考:jsfiddle