如何修改正则表达式去除.{21}$匹配结果的前导空格?
解决方法
方案1:直接匹配无前置空格的目标内容
将原正则表达式修改为:
\S.{20}$
这个正则会匹配以非空格字符开头的最后21个字符,自动跳过原匹配结果里的前置空格。原.{21}$包含的前置空格会被\S排除,\S匹配第一个非空格字符,后续.{20}匹配剩下的20个字符,总长度对应原21个字符的有效内容。
方案2:捕获组提取(兼容多前置空格场景)
如果不确定前置空格的数量,可使用带捕获组的正则:
\s*(.{20})$
提取捕获组1的内容即可。\s*会匹配任意数量的前置空格(包括1个),.{20}$匹配后面的20个字符到结尾,捕获组1就是去除前置空格后的目标内容。
内容的提问来源于stack exchange,提问作者Siva
相关产品推荐
相关产品推荐

