Regex Python在随机词和特殊字符之前添加字符:

2024-10-04 11:24:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试查找此类型字符串的正确regex查找:

cat: monkey, ab4 / 1997 / little: cat, 1954/ afgt22 /dog: monkey, 173 / pine-apple: duer, 129378s. / 12

我要设置的正则表达式是:

在任何“word”前插入字符“|”,后跟“:”,即“word”任何类型的单词,只包含字符而不包含数字。你知道吗

问题是:

我找不到一种方法来考虑字符串、包含“-”的单词或前面有特殊字符的单词,比如“/”而不是空格,如本例中所示:

https://regex101.com/r/gX7wY0/5

如您所见,到目前为止,只有其中一个有效,但是“|”字符后面有一个空格,然后单词后面跟着“:”。你知道吗

我想做的是:

|cat: monkey, ab4 / 1997 / |little: cat, 1954/ afgt22 /|dog: monkey, 173 / |pine-apple: duer, 129378s. / 12

到目前为止,只有特殊字符“-”在“:”之前成为单词的一部分。你知道吗

提前谢谢,我还在学习如何用Python使用regex。欢迎任何提示!你知道吗


Tags: 字符串类型apple字符单词regexcatmonkey
1条回答
网友
1楼 · 发布于 2024-10-04 11:24:54

您可以使用r'\b'来搜索分词符。你要找的案子

  • 匹配的子字符串:[A-Za-z\-]+
  • 和被分词符包围:\b[A-Za-z\-]+\b
  • 后面跟一个冒号:\b[A-Za-z\-]+\b:
  • 您可以使用括号捕获单词:\b([A-Za-z\-]+)\b:
  • 并使用\1在替换中恢复它
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'

相关问题 更多 >