gpt4 book ai didi

python - 如何在Python中使用正则表达式在特定字符之前和之后添加空格?

转载 作者:行者123 更新时间:2023-11-30 22:31:36 24 4
gpt4 key购买 nike

我有这样一句话: transportumum min kalo dari kota|tua | mau ke galeri nasional naik transjakarta jurusan apa ya?

正如您所看到的,该句子中有两个管道字符,如果管道位于单词中间没有空格,我喜欢在管道之前和之后添加空格。例如:kota|tuakota | tua

这是我到目前为止的代码:

def puncNorm(text):
pat = re.compile(r"\D([|:])\D")
text = pat.sub(" \\1 ", text)
return text

text = "transportumum min kalo dari kota|tua | mau ke galeri nasional naik transjakarta jurusan apa ya?"

text = puncNorm(text)

结果为每个管道字符添加了空格。所以tua | mau中有双倍空格:

transportumum min kalo dari kota | tua  |  mau ke galeri nasional naik transjakarta jurusan apa ya?

我的预期结果是:

transportumum min kalo dari kota | tua | mau ke galeri nasional naik transjakarta jurusan apa ya?

解决这个问题的最佳方法是什么?

最佳答案

\D模式匹配除数字之外的任何字符。您可以在此处使用单词边界来使符号仅在单词内部匹配:

r'\b([|:])\b'

请参阅regex demo

请注意,您也可以删除 (...)因为您需要更换整个比赛。整个比赛的反向引用是 \g<0>在Python中。

查看Python demo :

import re
rx = r'\b[|:]\b'
s = "transportumum min kalo dari kota|tua | mau ke galeri nasional naik transjakarta jurusan apa ya?"
print(re.sub(rx, ' \g<0> ', s))
# => transportumum min kalo dari kota | tua | mau ke galeri nasional naik transjakarta jurusan apa ya?

关于python - 如何在Python中使用正则表达式在特定字符之前和之后添加空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45750505/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com