正则分句在单词和符号中有例外

2024-09-30 22:24:06 发布

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

我做了一段代码:

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']

我怎样才能做到这一点?(语序很重要!)你知道吗


Tags: sample代码importre示例hellois符号
2条回答

怎么样:

f\/\w+|\w+|[^\w\s]

演示:https://regex101.com/r/Va3Llp/1

将regex改为r"f/\w+|\w+|[^\w\s]"(作为第一种选择) 我添加了f/\w+)。在Python中,甚至不需要转义/字符 (在其他宿主语言中也是如此)。你知道吗

重要的是,添加的片段是第一个选择。 否则,例如\w+备选方案将只有“赢”和匹配f。你知道吗

注意:我假设你的thiscanbeanything是一个单词序列 查尔斯。如果情况并非如此(例如,一系列非空格字符), 相应地更改此选项。你知道吗

相关问题 更多 >