python – 删除多行字符串中直到给定模式的所有字符
发布时间:2020-12-20 12:16:33 所属栏目:Python 来源:网络整理
导读:使用 Python我需要删除多行字符串中的所有字符,直到给定模式的第一次出现.在Perl中,这可以使用正则表达式来完成,例如: #remove all chars up to first occurrence of cat or dog or rat$pattern = 'cat|dog|rat' $pagetext =~ s/(.*?)($pattern)/$2/xms; 在
使用
Python我需要删除多行字符串中的所有字符,直到给定模式的第一次出现.在Perl中,这可以使用正则表达式来完成,例如:
#remove all chars up to first occurrence of cat or dog or rat $pattern = 'cat|dog|rat' $pagetext =~ s/(.*?)($pattern)/$2/xms; 在Python中使用它的最佳方法是什么? 解决方法
您想要删除第一次出现模式之前的所有字符;例如,你给“猫|狗|老鼠”.
使用re实现此目的的代码: re.sub("(?s).*?(cat|dog|rat)","1",input_text,1) 或者,如果您将再次使用此正则表达式: rex= re.compile("(?s).*?(cat|dog|rat)") result= rex.sub("1",1) 注意非贪心.*?初始(?s)允许在单词匹配之前匹配换行符. 例子: >>> input_text= "I have a dog and a cat" >>> re.sub(".*?(cat|dog|rat)",1) 'dog and a cat' >>> re.sub("(?s).*?(cat|dog|rat)",1) 'I have no animals!' >>> input_text= "This is irrational" >>> re.sub("(?s).*?(cat|dog|rat)",1) 'rational' 如果您只想对cat,dog和rat这两个词进行转换,则必须将正则表达式更改为: >>> re.sub(r"(?s).*?b(cat|dog|rat)b",1) 'This is irrational' (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读