如何在python中使用正则表达式删除与句点相关的单词。
ex: for a string 'random random 123.4445.764 random goo.34.hi random'
,操作返回'random random random random'
答案 0 :(得分:1)
使用re.sub
<强>演示:强>
import re
s = 'random random 123.4445.764 random goo.34.hi random'
print(re.sub("\w*\.\w*", "", s))
<强>输出:强>
random random random random
答案 1 :(得分:1)
要匹配与句点相关联的单词,您可以使用:
更新了@Jan
的评论详情
\b
字边界\w+
匹配一个或多个单词字符(?:
非捕获组
\.\w+
匹配一个点和一个或多个单词字符)+
关闭非捕获组并重复一次或多次以匹配a.b
或a.b.c
等\s*
匹配空格字符的零次或多次。例如:
import re
str = 'random random 123.4445.764 random goo.34.hi random'
print(re.sub("\\b\w+(?:\.\w+)+\s*", "", str))
那会给你:
随机随机随机
答案 2 :(得分:0)
另一种不使用正则表达式的方法:
" ".join(s for s in string.split() if '.' not in s)
#'random random random random'