如何使用正则表达式允许文本间存在多个空格?
修改正则以支持多空格分隔
你原来的正则用于匹配两类内容:一是仅由字母数字、点、下划线、连字符组成的单个字符串;二是多个这类字符串用单个空格分隔的组合。要让它支持文本之间的多个空格,只需要把正则里用来分隔的单个空格调整为允许一个或多个即可:
原正则:
^([A-Za-z0-9\._-]+ )+[A-Za-z0-9\._-]+$|^[A-Za-z0-9\._-]+$
直接修改版
把单个空格替换为 +(表示匹配一个或多个空格):
^([A-Za-z0-9\._-]+ +)+[A-Za-z0-9\._-]+$|^[A-Za-z0-9\._-]+$
更简洁优化版
可以合并重复逻辑,用非捕获组简化写法,同时覆盖所有场景:
^[A-Za-z0-9\._-]+( +[A-Za-z0-9\._-]+)*$
这个写法的逻辑是:先匹配一段符合规则的字符,后面可以跟零次或多次“多空格+符合规则的字符”组合,既支持单个字符串,也支持多组用多空格分隔的字符串。
内容的提问来源于stack exchange,提问作者Rohith Sunny
相关产品推荐
相关产品推荐

