- 此问题在此处已有答案**:
Ignoring white space for a Regex match(3个答案)
昨天关门了。
有没有一种简单的方法可以忽略正则表达式中数字之间的空格?
我希望一个正则表达式匹配任何10位数字,包括数字之间的空格。
例如,以下3个示例将匹配:
1.小行星48745
1.四八七四五二六三九五
1.小行星48745^\d{10}$
是当前的正则表达式,我希望我需要在某个地方使用\s
,但不确定如何使用。
Ignoring white space for a Regex match(3个答案)
昨天关门了。
有没有一种简单的方法可以忽略正则表达式中数字之间的空格?
我希望一个正则表达式匹配任何10位数字,包括数字之间的空格。
例如,以下3个示例将匹配:
1.小行星48745
1.四八七四五二六三九五
1.小行星48745^\d{10}$
是当前的正则表达式,我希望我需要在某个地方使用\s
,但不确定如何使用。
5条答案
按热度按时间y53ybaqx1#
您可以使用
^( *\d){10} *$
来匹配10个数字,这些数字之前/之后或之间带有空格字符。雷格斯珀
如果您只想允许中间有空格,而不允许前后有空格,则可以改用
^\d( *\d){9}$
。雷格斯珀
也许更好的理解是先删除空格字符。
如果你想匹配所有的空格(空格、换行符、制表符等),而不仅仅是空格,你可以用
\s
替换正则表达式中的空格。twh00eeo2#
可以使用以下正则表达式:
请注意,这与前导或尾随空格不匹配,如果还需要匹配这些情况,只需在正则表达式前后添加
\s*
(例如^\s*(\d\s*){9}\d\s*$
)。如果需要,可以在regex101中交互地检查这个regexp并在那里生成代码。
06odsfpq3#
我可能倾向于在检查输入的位数是否正确之前去掉空格:
f1tvaqid4#
使用下面的代码,你可以消除数字之间的差距,即使你有字符串之间
字符串repl =“111 222 333”。替换全部(“(?〈=\d)+(?=\d)",“”);//=〉世界你好!
这个正则表达式“(?〈=\d)+(?=\d)”确保匹配前后都有数字的空格。
cs7cruho5#
这里有一个建议的方法来实现这一点:How to ignore whitespace in a regular expression subject string?
但在这种情况下,用空字符串替换所有空格并使用正则表达式会更容易: