2016-01-19 55 views
0

我想,以过滤franklusero06并呈现以下名称的其余部分写一个正则表达式的名字:我不知道如何更改查询不是匹配所有

franklusero06 
usprodusero1  
usprodusero2  
ukusero2 

这是我为它的正则表达式:

([A-Za-z]{2,3}(produsero|usero)+[0-9]{1,3}) 

在这里你可以找到代码:code

钍这个代码E问题是匹配所有的名字,但是这不是我想要的,我想匹配只是最后3

回答

1

只是一个字的边界添加到正则表达式:

\b([A-Za-z]{2,3}(produsero|usero)+[0-9]{1,3})\b 
+0

完美。什么是边界? –

+1

http://www.regular-expressions.info/wordboundaries.html –

+0

单词边界匹配单词和非单词字符之间的位置(或在字符串的开始/开始处)。 –

1

你可以更多地清理正则表达式:

\b([a-zA-Z]{2,3}(?:prod)?usero+\d{1,3})\b 

工作是否更快一点。

+0

你用'\ b([a-zA-Z] {2,3}(prod)'写的有什么区别?usero + \ d {1,3})\ b'? –

+0

?:防止捕获第二组(产品) –