regex 匹配以两个字母开头的字符串

q3qa4bjr  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(82)

我有以下字符串:AP00c8.8bf2.6b54
我需要一个正则表达式来匹配它,如下所示:以“AP“00 c8(4chars)开头.4chars.4chars
这是在2个结果中匹配整个字符串:

^AP[a-zA-Z0-9]*|[a-zA-Z0-9]*\.[a-zA-Z0-9]+([a-zA-Z0-9]+)?$

所以这几乎是工作,不,我只需要限制字符,如6.4.4
有人愿意帮我一把吗?

  • 图贝
rhfm7lfc

rhfm7lfc1#

如果我理解正确的话,你需要匹配以“AP”开头的字符串,然后是4个字符,然后是一个点,然后是4个字符,然后是一个点,然后是另外4个字符。那就是:

^AP[a-zA-Z0-9]{4}\.[a-zA-Z0-9]{4}\.[a-zA-Z0-9]{4}$

这里有一些关于你原来的模式的更多信息,以防我误解了你想做的事情:

^AP[a-zA-Z0-9]*|[a-zA-Z0-9]*\.[a-zA-Z0-9]+([a-zA-Z0-9]+)?$
  1. | means "or".你不需要这个。它定义了两种可选的模式,一种以“AP”等开头,另一种以可选的一组字符结尾。
  2. * means "0 or more occurrences".您需要{4} which means "4 occurrences".
  3. + means "1 or more occurrences".同样需要{4}
  4. ? means "0 or 1 occurrences".不需要。
  5. [a-zA-Z0-9]+([a-zA-Z0-9]+)?表示“一个或多个电化学品,任选地随后是另一组一个或多个电化学品”。这说不通啊第一组何时停止,第二组何时开始?[a-zA-Z0-9]+匹配相同的东西:“一个或多个字母”。
  6. () the parentheses are a capturing group。它们的意思是“将匹配的这一部分捕获到一个变量中,因为我想在后面的代码中使用它”。
    我希望这能帮上忙。

相关问题