Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式-字符串包含6位数字_Regex_Validation - Fatal编程技术网

Regex 正则表达式-字符串包含6位数字

Regex 正则表达式-字符串包含6位数字,regex,validation,Regex,Validation,我正试图编写一个正则表达式来解析数据库中的银行排序代码。 我需要正则表达式的原因是排序代码可能包含在一个句子中。 但是,它也可能根本不是排序代码,因为在数据库中输入数据的人有时会将银行账号和电话号码放入排序代码列中。 我可以用 ^[^0-9]*[0-9]{6}[^\d]*$ 哪个对你有效 "blah123456blah" 但不是在 "Emloyee 12's srt code : 123456" 我尝试过的任何其他方法都会为字符串中的6个或更多数字提供匹配项(很可能是银行账号) 非常感谢

我正试图编写一个正则表达式来解析数据库中的银行排序代码。 我需要正则表达式的原因是排序代码可能包含在一个句子中。 但是,它也可能根本不是排序代码,因为在数据库中输入数据的人有时会将银行账号和电话号码放入排序代码列中。 我可以用

^[^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]|$)

请参阅。

是否尝试使用?或者字符串中应该只有一块六位数字吗?此外,默认情况下是否锚定了图案?什么是语言/工具?如果他们像许多英国人一样在排序代码中输入破折号怎么办-例如,20-03-84您想要什么还不完全清楚。你能把一些应该匹配的例子和一些不应该匹配的例子放在单独的行上吗?在前面和后面分别添加
(^0-9])
([^0-9]$)。
是一个交替操作符。