我试图编写一个regex来解析数据库中的银行排序代码。我需要正则表达式的原因是排序代码可能包含在一个句子中。但是,它可能根本不是排序代码,因为在数据库中输入数据的人有时会将银行帐号和电话号码放入排序代码列中。我可以用
^[^0-9]*[0-9]{6}[^\d]*$ 它的作用是
"blah123456blah"但不是继续
"Emloyee 12's srt code : 123456"我尝试过的任何其他方法都可以使我匹配字符串中的6位或更多位数(这很可能是一个银行帐号)。
任何帮助都是非常感谢的。
发布于 2016-12-13 17:30:28
你说你在用
[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演示。
https://stackoverflow.com/questions/41126909
复制相似问题