正则表达式Python在随机字和特殊字符之前添加字符:
我正在尝试找到此类型字符串的正确正则表达式查找:正则表达式Python在随机字和特殊字符之前添加字符:,python,regex,Python,Regex,我正在尝试找到此类型字符串的正确正则表达式查找: cat:monkey,ab4/1997/little:cat,1954/afgt22/dog:monkey,173/pine apple:duer,129378s./12 我试图设置的正则表达式是: 在任何“单词”后面加“:”之前插入字符“|”,该字符是任何类型的单词,只包含字符而不包含数字 问题是: 我无法找到一种方法来考虑字符串,包含“--”的词或前面的特殊字符,比如“//”,而不是空格,如在这个例子中: 正如您所看到的,到目前为止,只有
cat:monkey,ab4/1997/little:cat,1954/afgt22/dog:monkey,173/pine apple:duer,129378s./12
我试图设置的正则表达式是:
在任何“单词”后面加“:”之前插入字符“|”,该字符是任何类型的单词,只包含字符而不包含数字
问题是:
<>我无法找到一种方法来考虑字符串,包含“--”的词或前面的特殊字符,比如“//”,而不是空格,如在这个例子中:
正如您所看到的,到目前为止,只有其中一个有效,但是“|”字符后面有一个空格,然后单词后面跟着“:”
我想做的是:
|猫:猴子,ab4/1997/|小:猫,1954/afgt22/|狗:猴子,173/|松苹果:决斗,129378s./12
到目前为止,只有特殊字符“-”在“:”之前成为单词的一部分
提前感谢,我还在学习如何将正则表达式与Python结合使用。欢迎任何提示 您可以使用
r'\b'
搜索分词。对于您正在寻找的案例
- 匹配的子字符串:
[A-Za-z\-]+
- 和被分词所包围:
\b[A-Za-z\-]+\b
- 后面跟一个冒号:
\b[a-Za-z\-]+\b:
- 您可以使用括号捕获单词:
\b([A-Za-z\-]+)\b:
- 并使用
\1
谢谢你,詹姆斯!这解决了问题,也让我对regex有了更多的了解,非常感谢!
import re
s = 'cat: monkey, ab4 / 1997 / little: cat, 1954/ afgt22 /dog: monkey, 173 / pine-apple: duer, 129378s. / 12'
re.sub(r'(\b[A-Za-z\-]+\b):', r'|\1:', s)
# returns:
'|cat: monkey, ab4 / 1997 / |little: cat, 1954/ afgt22 /|dog: monkey, 173 / |pine-apple: duer, 129378s. / 12'