Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正则表达式Python在随机字和特殊字符之前添加字符:_Python_Regex - Fatal编程技术网

正则表达式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'