正则中这个去空格应该怎么写?

使用问题 · 130 次浏览
iamhrh2 创建于 2024-05-17 10:01

只保留  中文和中文 数字和数字 英文和英文 英文和数字 数字和英文   之间的空格
其余空格全部去掉,这种正则应该怎么写


回复内容
咿呀杀杀 2024-05-17 16:44
#1

(?<=[\x00-\x7f]) (?=[^\x00-\x7f])|(?<=[^\x00-\x7f]) (?=[\x00-\x7f])

替换为空

iamhrh2 回复 咿呀杀杀 2024-05-17 16:51 :

测试了一下。发现全角的逗号后面空格还保留了

咿呀杀杀 回复 iamhrh2 2024-05-17 17:14 :

“你好, 中国。”这个情况就是中文和中文之间的空格,按你的描述就应该保留。
想要一个周全的正则,最好提供一个示例文本,尽可能包含所有可能的情况。格式参考置顶贴。

iamhrh2 回复 咿呀杀杀 2024-05-17 17:20 :

中华: 人民共和国中华人民共和国121 456 中华人民共和国abc def中华人民共和国abc 123中华人民共和国123 abc中华人民共和国abc 中 :华人民共和国 123 中华人民共和国, 中华人民共和国123. 中华人民共和国abc, 中华人民共和国 仞for VA A M . M,中华人民共和国中华 。人民共和国ABC 123中华人民共和国 ABC 12 3中华人民共和国ABC 123 中华人民共和国; AB?C 123中华人民共和?国


如上文字。里面有很多空格,只保留  中文和中文 数字和数字 英文和英文 英文和数字 数字和英文   之间的空格 ,别的空格都不要。包括标点前后的空后都不要

中,国  这样的都标点不要空,中间本来就有了标点。

iamhrh2 最后更新于 2024-05-17 17:21
咿呀杀杀 回复 iamhrh2 2024-05-18 14:17 :

(?![^\x00-\x7f-[\p{P}]] [^\x00-\x7f-[\p{P}]]|[0-9a-zA-z] [0-9a-zA-z])(\S) (?=\S)
替换为 $1


iamhrh2 回复 咿呀杀杀 2024-05-18 14:29 :
非常完美。感谢。
咿呀杀杀 回复 iamhrh2 2024-05-18 15:04 :

手误把 A-Z 打成 A-z 了,改正一下:
(?![^\x00-\x7f-[\p{P}]] [^\x00-\x7f-[\p{P}]]|[0-9a-zA-Z] [0-9a-zA-Z])(\S) (?=\S)

iamhrh2 回复 咿呀杀杀 2024-05-18 15:12 :

谢谢

回复主贴