2017-03-03 35 views
3

我需要匹配A之前的字母1-5数字或字母B前面的数字1-4正则表达式匹配一个字母前的4或5位数

所以我正则表达式是这样的: (\d{1,5}A)|(\d{1,4}B)

但这最后4位数字的A之前匹配。

任何解决方案?

+0

究竟是什么问题?你只想匹配'A'还是'B'? –

回答

4

这符合之前的一个

的最后4位数字的正则表达式之前要求的项目一个数字的前面:

(?<!\d)((\d{1,5}A)|(\d{1,4}B)) 

另一种解决方案是要求字界线\b

lookahead/lookbehind tutorial

+1

['\ b'](http://www.regular-expressions.info/wordboundaries.html)也可以完成这项工作。 – sp00m

+0

@ sp00m好点,谢谢! – dasblinkenlight

+0

我不明白这个问题,不明白为什么这应该是一个解决方案。您的正则表达式仍然“与A之前的最后4位数匹配” –

0

东西线沿线的:

(\d{1,5}A)|(\d{1,4}B) 

我会建议考虑看看cheatsheet。如果你不熟悉正则表达式,并尝试自己做这些简单的正则表达式。

还有大量的在线正则表达式测试应用程序,如:regextester,使您能够测试您的正则表达式而无需编写任何代码。

相关问题