正则表达式可用于裁剪吗?
发布时间:2020-12-14 05:50:18 所属栏目:百科 来源:网络整理
导读:假设我有这三行: the quick brown foxthe brown foxthe quick brown quick fox 除了单词quick之外,可以使用正则表达式来裁剪每行中的所有内容吗? 最终结果如下: quickquickquick 解决方法 具体取决于您使用的语言,但这里有一些使用正则表达式的常用方法(P
假设我有这三行:
the quick brown fox the brown fox the quick brown quick fox 除了单词quick之外,可以使用正则表达式来裁剪每行中的所有内容吗? 最终结果如下: quick quickquick 解决方法
具体取决于您使用的语言,但这里有一些使用正则表达式的常用方法(Python中的代码示例):
>查找目标字符串的所有匹配项,然后将每个匹配项合并为一个字符串: >>> import re >>> s = 'the quick brown quick fox' >>> ''.join(re.findall('quick',s)) 'quickquick' >构造一个正则表达式以匹配除目标字符串之外的所有内容,然后用空字符串替换每个匹配项(这通常比列出的其他替代项更难): >>> re.sub('(?!quick|(?<=q)uick|(?<=qu)ick|(?<=qui)ck|(?<=quic)k).','',s) 'quickquick' >使用捕获组匹配所有内容,直到出现目标字符串,然后仅使用目标字符串替换: >>> re.sub('.*?(quick|$)',r'1',s) 'quickquick' 如果您的字符串在示例中有多行,则可以先在换行符上拆分字符串,或者调整解决方案以保持换行符,例如: >>> s = '''the quick brown fox ... the brown fox ... the quick brown quick fox''' >>> print ''.join(re.findall('quick|[rn]',s)) quick quickquick >>> print re.sub('.*?(quick|$)',s,flags=re.MULTILINE) quick quickquick (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |