如何用正则匹配字符串中仅含字母数字组合的6位单词?
匹配6位同时包含字母和数字的字符串
需求说明
我需要从字符串中匹配长度为6位、同时包含字母和数字的单词。
示例字符串:
Bus Express Wash at bay no 083457 - Truckno AB96CD & Truck no 12367S & 12368S
当前使用正则表达式 [a-zA-Z0-9]{6},匹配结果包含 xpress、083457、ruckno、AB96CD、12367S、12368S,但仅需保留同时包含字母和数字的组合,期望输出:
AB96CD 12367S 12368S
解决方案
使用带正向预查的正则表达式,确保匹配的6位字符串同时包含字母和数字,表达式如下:
\b(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]{6}\b
正则各部分作用:
\b:匹配单词边界,避免从长单词中截取片段(比如防止从Express里截出xpress)(?=.*[a-zA-Z]):正向预查,保证字符串中至少包含一个字母(?=.*[0-9]):正向预查,保证字符串中至少包含一个数字[a-zA-Z0-9]{6}:匹配长度为6的字母数字组合\b:结尾的单词边界,确保匹配的是完整的6位单词
用该正则匹配示例字符串,将精准得到期望的结果。
内容的提问来源于stack exchange,提问作者Pavan Gunda
相关产品推荐
相关产品推荐

