我已经制作了这段代码:
import re
sentence = "Hello, StackOverflow!" # Sample input
words = re.findall(r"\w+|[^\w\s]", sentence, re.UNICODE)
print(words)
哪个效果出奇的好。这是示例输出['Hello', ',', 'StackOverflow', '!']
。
关于这个RegEx的重要部分是即使有空格也能正确地从符号中分割单词(例如'Hello World!'和'Hello World!'以相同的方式分割)。
现在,我需要将这些符号的组合列入黑名单,特别是f/xxxx
(xxxx是占位符,其中可能有任何内容)。
示例:
“这是一个包含:f / thiscanbeanything”的句子应该被分成
['This','is','a','sentence','containing',':','f/thiscanbeanything']
我怎样才能做到这一点? (字顺序非常重要!)
答案 0 :(得分:0)
答案 1 :(得分:0)
将正则表达式更改为r"f/\w+|\w+|[^\w\s]"
(作为第一种选择
我添加了f/\w+
)。在Python中,您甚至不需要转义/
字符
(正如您在其他主机语言中所必须的那样)。
重要的是添加的片段是第一种选择。
否则例如\w+
替代方案将赢得"赢得"仅匹配f
。
注意:我假设您的thiscanbeanything
是一个单词序列
字符。如果不是这种情况(例如一系列非空间字符),
相应地改变这个替代方案。