像这样的句子:
sent = "This i$s a s[[]ample sentence.\nAnd another <<one>>.
\nMoreover, it is 'filtered'!"
我想要:
^{pr2}$因此,我认为使用re.sub
应该是一种方法。然而,RegEx并没有像预期的那样工作(就像它总是这样^^)。在
我的想法是使用\W
匹配每个非单词,然后排除{
re.sub(r"(\W[^\.\,\;\?\!])", "", sent)
不幸的是,[^\.\,\;\?\!]
与不包含[.,;!?]
的任何内容都匹配,而不是简单地说“donot逐字匹配这些字符”。在
如何从匹配中排除这些字符?在
\W
需要集成到否定字符类中。\W
与[^\w]
相同,因此您将得到[^\w.,;!?]
。您应该重复这个字符类,以便在一个步骤中匹配连续的出现-[^\w.,;!?]+
。在似乎你也希望保留空格,所以你应该把它们添加到你的角色类中。在
随着问题的深入,您还想用空格替换换行符,}替换为
!
替换为.
。这使它成为一个多步骤的解决方案。首先过滤掉任何不需要的[^\w.,;!? \n]+
,在下一步中,将\n
替换为,将{
.
。在相关问题 更多 >
编程相关推荐