所以,我一直在尝试写出一个正则表达式,用于匹配电阻值,它包含一定数量的数字和最多一个字母,并且总长度始终是一定的(让我们使用四个字符的电阻代码作为示例)。
首先,我可以使用'\d*[RKM]\d*'
,但这会允许像'R'
这样的内容。
另外,我可以做类似'[\dRKM]{4}'
的事情,但这将允许像'RRR4'
这样的内容,这不是我想要的值。
'\d{1,4}[Rr]\d{0,3} | ([RKM]\d{3}) | (\d{4})'
,虽然更具体,但仍会允许像'1234R567'
这样不是四个字符的内容。
因此,基本上,有没有更紧凑的方式来编写'[RKM]\d\d\d | \d[RKM]\d\d | \d\d[RKM]\d | \d\d\d[RKM] | \d\d\d\d'
?
^[RKM]\d{3}|\d[RKM]\d{2}|\d{2}[RKM]\d|\d{3}[RKM]|\d{4}$
太复杂了吗?或者,如果您在其他文本中查找:\b(?:[RKM]\d{3}|\d[RKM]\d{2}|\d{2}[RKM]\d|\d{3}[RKM]|\d{4})\b
- Brad Christie