美好的一天!我是新人,正在探索正则表达式。我目前正在分析数据,并排除系统中的脏数据。现在,我很难删除尾随的空格,我不知道应该使用什么内置函数来消除此空白。如果我输入\ h,它将不会捕获空间,但是如果使用\ s,它将捕获空间,但是在行尾有尾随空格。
这是我在regexp.com上测试过的正则表达式
\b((\d{1,}[\s|\-]+){1,3}\d{1})\b
我想捕获的格式是:
Format1- ####-#######-#
Format2- #### ####### #
Format3- ##-#######-#
Format4- ## ####### #
Format5- ########## ({10,12} digits)
如果要匹配这些格式,则可以匹配2或4位数字。捕获匹配组中的空格或-
,并使用对该组中捕获的内容的向后引用以使定界符保持相同(因此不匹配相同格式的空格和-
)
注意\s
也可以匹配换行符。如果只想匹配空格,则可以添加空格。
\b(?:(?:\d{4}|\d{2})([- ])\d{7}\1\d|\d{10,12})\b
部分
\b
字边界(?:
非捕获组(?:\d{4}|\d{2})
匹配4位或2位数字([- ])
捕获group 1,匹配-
或空格(使用\s
匹配空白字符)\d{7}\1\d
匹配7位数字,向后引用组1(与上一位匹配相同的字符),后跟最后一位数字|
或\d{10,12}
匹配10到12位数字)
封闭组\b
字边界