首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式在某些句子中的可变位置添加一个单词

正则表达式在某些句子中的可变位置添加一个单词
EN

Stack Overflow用户
提问于 2019-03-16 13:01:49
回答 1查看 36关注 0票数 0

我有一个令人尴尬的新手问题,但我想我被困住了,不能直截了当。

我需要一个正则表达式模式,它将在单词'year''years'之后添加单词'child''children',只有在句子中也存在单词'child''children'(我在数据中检测到的模式)。

所以:

“特别适用于一岁或十二岁以下、七岁以下的儿童。”

会在“第一年”之后加上“老”,但在“第二老”之后不加“旧”,也不会在最后两个字之后加上“老”:

“特别是在一岁、或12岁以上的儿童中,有7岁。”

到目前为止,我的模式都是错误的。

代码语言:javascript
复制
if 'child' or 'children' in i.split() and 'old' or 'olds' not in  i.split(): 
    i=re.sub(r'year' ,'year old',i)

有什么想法吗?谢谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-16 13:21:07

有关解释: regex101:https://regex101.com/r/hTsPlF/1,请参阅对https://regex101.com/r/hTsPlF/1的分析。

代码语言:javascript
复制
import re
i = 'Especially in children who are one year or up to twelve years old, for seven years.'
if re.search(r'(\bchild\b)|(\bchildren\b)',i):
    re.sub('(years{0,1}) (?!old)',r'\1 old ',i)

这意味着:

代码语言:javascript
复制
'Especially in children who are one year old or up to twelve years old, for seven years.'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55197105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档