我做了一段代码:
import re
sentence = "Hello, StackOverflow!" # Sample input
words = re.findall(r"\w+|[^\w\s]", sentence, re.UNICODE)
print(words)
效果出奇的好。这是示例输出['Hello', ',', 'StackOverflow', '!']
。你知道吗
这个正则表达式的重要部分是,即使有空格,也能正确地将单词和符号分开(例如“Hello World!”还有“你好,世界!”以同样的方式分开)。你知道吗
现在,我需要黑名单这些符号的组合,特别是f/xxxx
(xxxx是一个占位符,里面可能有任何东西)。你知道吗
示例:
"This is a sentence containing: f/thiscanbeanything" should be split into
['This','is','a','sentence','containing',':','f/thiscanbeanything']
我怎样才能做到这一点?(语序很重要!)你知道吗
怎么样:
演示:https://regex101.com/r/Va3Llp/1
将regex改为
r"f/\w+|\w+|[^\w\s]"
(作为第一种选择) 我添加了f/\w+
)。在Python中,甚至不需要转义/
字符 (在其他宿主语言中也是如此)。你知道吗重要的是,添加的片段是第一个选择。 否则,例如
\w+
备选方案将只有“赢”和匹配f
。你知道吗注意:我假设你的
thiscanbeanything
是一个单词序列 查尔斯。如果情况并非如此(例如,一系列非空格字符), 相应地更改此选项。你知道吗相关问题 更多 >
编程相关推荐