用正则表达式匹配交替字母数字字符

时间:2018-10-26 12:31:50

标签: python regex

我想使用正则表达式匹配以下字母数字组合; ao1 a12 01p p1p 1ap 1p1

使用following regex,我可以匹配除p1p and 1p1以外的所有内容:

[a-z][0-9]{1,2}|[0-9]{1,2}[a-z]|[a-z][0-9][a-z]|[a-z]{1,2}[0-9]|[0-9][a-z][0-9]

如何使用正则表达式正确匹配交替的number/letter/numberletter/number/letter?它需要精确匹配3个字符,它们出现在句子中。

3 个答案:

答案 0 :(得分:1)

您可以使用

(?<!\S)(?=[a-z]{0,2}\d)(?=\d{0,2}[a-z])[a-z\d]{3}(?!\S)

请参见regex demo

详细信息

  • (?<!\S)-空格或字符串开头应位于当前位置的左侧
  • (?=[a-z]{0,2}\d)-当前位置右侧紧靠0到2个字母后必须有一个数字
  • (?=\d{0,2}[a-z])-当前位置的右侧必须在0到2位数字后紧跟一个字母
  • [a-z\d]{3}-三个字母或数字匹配
  • (?!\S)-空格或字符串结尾应位于当前位置的右侧。

答案 1 :(得分:0)

答案 2 :(得分:0)

因此,如果您需要数字/字母/数字和字母/数字/字母,则下面的方法应该起作用。但是您输入的ao1不符合此条件。

\d[a-z]\d|[a-z]\d[a-z]