求大神写个匹配空格的正则表达式

weixin_42535307 2019-09-12 02:46:04
想给pdf添加目录,要把空格替换了,但是不能包括空格两边的字符,网上搜了好久都不行,具体格式如下:

1.2.3 去除现有的缩进 7
1.2.4 结合dedent和fill 8
如上,要替换后面的那个空格,也就是7和8前面的空格,都是以数字结尾的,要替换的空格前面是字母和汉字,没有其他符号,我用\S(.*?)\d匹配出来包含空格两边的字符,怎么样才能不包含两边的字符,只包含空格
...全文
1078 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_42535307 2019-09-13
  • 打赏
  • 举报
回复
引用 5 楼 chuifengde 的回复:
import re 
x ="""1.2.3 去除现有的缩进 7
      1.2.4 结合dedent和fill 8"""

l = re.sub("(?<=[A-Za-z\u4e00-\u9fa5])\s*(?=\d)","\t",x)
print(l)

#result
1.2.3 去除现有的缩进	7
          1.2.4 结合dedent和fill	8
这个可以匹配出来 谢谢
chuifengde 2019-09-12
  • 打赏
  • 举报
回复
import re 
x ="""1.2.3 去除现有的缩进 7
      1.2.4 结合dedent和fill 8"""

l = re.sub("(?<=[A-Za-z\u4e00-\u9fa5])\s*(?=\d)","\t",x)
print(l)

#result
1.2.3 去除现有的缩进	7
          1.2.4 结合dedent和fill	8
weixin_42535307 2019-09-12
  • 打赏
  • 举报
回复
引用 2 楼 zhegecsdn 的回复:
按照我的理解: 如果只是空格的话,正则不就是直接: ' ',引号中间一个空格就好了吗? 如果是说针对你举例的那些字符串,“1.2.4 结合dedent和fill 8”这种。我不知道1.2.4后边是不是也有一个空格。就当字符串里有多个空格,你想要去除最后一个空格。可以考虑使用re.split()方法。按照空格分隔成列表,再进行拼接。测试代码如下:

import re
title = "1.2.4 结合dedent和fill 8"
title_list = re.split(' ',title)
print(title_list)
# ['1.2.4', '结合dedent和fill', '8']
# 拼接列表中项,保留1.2.4后边的空格,去除8前边的空格
title_new = ' '.join(title_list[:-1])+title_list[-1]
print(title_new)
#最终输出结果:1.2.4 结合dedent和fill8
这不行啊兄弟,这样不能替换后面的空格 可能我没说清楚,就是1.2.4后面有个空格,fill后面有个空格,有两个空格,只能把后面的空格替换成制表符,也就是一个tab键的距离,总共有八百多行
weixin_42535307 2019-09-12
  • 打赏
  • 举报
回复
引用 1 楼 文盲老顾 的回复:
用断言,(?<=\S)\s*(?=\d)
刚才试了下,这个匹配不出来
zhegecsdn 2019-09-12
  • 打赏
  • 举报
回复
按照我的理解: 如果只是空格的话,正则不就是直接: ' ',引号中间一个空格就好了吗? 如果是说针对你举例的那些字符串,“1.2.4 结合dedent和fill 8”这种。我不知道1.2.4后边是不是也有一个空格。就当字符串里有多个空格,你想要去除最后一个空格。可以考虑使用re.split()方法。按照空格分隔成列表,再进行拼接。测试代码如下:

import re
title = "1.2.4 结合dedent和fill 8"
title_list = re.split(' ',title)
print(title_list)
# ['1.2.4', '结合dedent和fill', '8']
# 拼接列表中项,保留1.2.4后边的空格,去除8前边的空格
title_new = ' '.join(title_list[:-1])+title_list[-1]
print(title_new)
#最终输出结果:1.2.4 结合dedent和fill8
文盲老顾 2019-09-12
  • 打赏
  • 举报
回复 1
用断言,(?<=\S)\s*(?=\d)

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧