我正在尝试编写一个正则表达式来解析数据库中的银行排序代码。 我需要正则表达式的原因是排序代码可能包含在句子中。 而且,它可能根本不是排序代码,因为将数据输入数据库的人们有时会将银行帐号和电话号码放入排序代码列中。 我可以使用
^[^0-9]*[0-9]{6}[^\d]*$
适用于
"blah123456blah"
但没有开启
"Emloyee 12's srt code : 123456"
我尝试过的任何其他方法都可以匹配字符串中的 6 个或更多位数字(很可能是银行帐号)。
非常感谢任何帮助。
最佳答案
你说你正在使用
[0-9]{2}\s*-?\s*[0-9]{2}\s*-?\s*[0-9]{2}
要添加所需的边界,请添加 (^|[^0-9])
(字符串起始位置 (^
) 或 ( |
) 前面有一个非数字 ([^0-9]
)) 和 ([^0-9]|$)
(匹配非数字) -数字或字符串末尾位置 ($
)) 位于末尾:
(^|[^0-9])[0-9]{2}\s*-?\s*[0-9]{2}\s*-?\s*[0-9]{2}([^0-9]|$)
请参阅regex demo .
关于正则表达式 - 字符串包含 6 位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41126909/