如何使用python正则表达式查找和替换句子中第n个单词的出现?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何使用python正则表达式查找和替换句子中第n个单词的出现?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1304字,纯文字阅读大概需要2分钟。
内容图文
![如何使用python正则表达式查找和替换句子中第n个单词的出现?](/upload/InfoBanner/zyjiaocheng/708/e3badbd58aab4eee868a4382043b7459.jpg)
仅使用python正则表达式,如何查找和替换句子中第n个单词的出现?
例如:
str = 'cat goose mouse horse pig cat cow'
new_str = re.sub(r'cat', r'Bull', str)
new_str = re.sub(r'cat', r'Bull', str, 1)
new_str = re.sub(r'cat', r'Bull', str, 2)
我上面有一句话,“cat”这个词出现在句子中两次.我希望第二次出现的’猫’改为’公牛’,留下第一个’猫’字.我的最后一句话看起来像:
“猫鹅鼠马猪公牛”.在我上面的代码中,我试过3次不能得到我想要的东西.
解决方法:
使用负面预测,如下所示.
>>> s = "cat goose mouse horse pig cat cow"
>>> re.sub(r'^((?:(?!cat).)*cat(?:(?!cat).)*)cat', r'\1Bull', s)
'cat goose mouse horse pig Bull cow'
> ^断言我们刚开始.
>(?:(?!cat).)*匹配任何字符,但不匹配cat,零次或多次.
> cat匹配第一个cat子串.
>(?:(?!cat).)*匹配任何字符,但不匹配cat,零次或多次.
>现在,将所有模式包含在捕获组中,如((?:(?!cat).)* cat(?:(?!cat).)*),以便我们稍后可以引用捕获的字符.
> cat现在匹配以下第二个cat字符串.
要么
>>> s = "cat goose mouse horse pig cat cow"
>>> re.sub(r'^(.*?(cat.*?){1})cat', r'\1Bull', s)
'cat goose mouse horse pig Bull cow'
更改{}内的数字以替换字符串cat的第一个或第二个或第n个匹配项
要替换第三次出现的字符串cat,请将2放在花括号内.
>>> re.sub(r'^(.*?(cat.*?){2})cat', r'\1Bull', "cat goose mouse horse pig cat foo cat cow")
'cat goose mouse horse pig cat foo Bull cow'
Play with the above regex on here …
内容总结
以上是互联网集市为您收集整理的如何使用python正则表达式查找和替换句子中第n个单词的出现?全部内容,希望文章能够帮你解决如何使用python正则表达式查找和替换句子中第n个单词的出现?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。