我有一个要求,我有一个字符串输入,其中包含可能包含字母 [a-zA-Z] 和数字 [0-9] 的单词。我希望能够分隔每个这样的单词,以便在字母部分和数字部分之间插入一个空格。例如,对于字符串
"5n7x Jahalducro) P4J99UMH9 (MD) auntud C D T)",
单词“P4J99UMH9”将转换为“P 4 J 99 UMH 9”我有几个正则表达式,它们在 Python 中使用 re.sub() 顺序执行此操作
import re
text = "5n7x Jahalducro) P4J99UMH9 (MD) auntud C D T)"
# For <alpha><number><alpha>
text = re.sub(r'(?<=[a-zA-Z])([\d]+)(?=[a-zA-Z])', r' \1 '),text)
# For <alpha><number><space>
text = re.sub(r'(?<=[a-zA-Z])([\d]+)(?=\s)', r' \1')
现在我还希望能够在这些正则表达式不应该工作的字符串中标记某些单词。我想通过将它们括在一个特殊字符中来做到这一点,比如~
"5n7x Jahalducro) ~P4J99UMH9~ (MD) auntud C D T)"
我该如何为此编写正则表达式?