最后的字符不匹配

时间:2018-01-29 09:00:10

标签: ruby regex

我需要匹配字符串str中的所有字母和数字。

这是我的代码。

str.match(/^(AB)(\d+)([A-Za-z][0-9])?/)

str = AB57933A [sic]时,它仅匹配AB57933,而不是数字后面附加的字符。

如果我尝试使用str = AB57933AbC [sic],则仅匹配AB57933;它只匹配最后一个数字,而不是之后的字符。

1 个答案:

答案 0 :(得分:2)

你写的方式:

/^(AB)(\d+)([A-Za-z][0-9])/

你强加的最后一个字符在09之间,你可以根据你的需要替换它,如果你不希望在最后一个字母后面的数字

/^(AB)(\d+)([A-Za-z]+)/

/^(AB)(\d+)([A-Za-z0-9]+)/ 

如果AB57933AbC12也被接受为有效输入。

最后但并非最不重要的是,如果您不使用反向引用,则可以省略括号,因为您不需要捕获组