qq_41734591
qq_41734591
采纳率66.7%
2018-10-08 03:06

可以帮忙写个正则表达式吗?格式为"机器人添加 关键词:XXXXX 回答:YYYY"?

40
  • python
  • 正则表达式
已采纳

各位大神,小弟要用python处理文本,碰到一项任务,需要用正则表达式判断文本输入是否符合以下格式:

  • "机器人添加 关键词:XXXXX 回答:YYYY"
  • 其中XXXXX,YYYY是可变的,其余是固定的,并且两个冒号是中文冒号;
  • XXXXX,YYYY长度不定,可包含中文英文。但XXXXX只能是中英文,不能带有符号,而YYYY无此限定。
  • 请各位大神帮帮忙,十分感谢!做伸手党内心惭愧,但无奈时间紧水平差,一点C币奉上
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答

  • xingjianfengaa xingjianfengaa 3年前

    import re
    str="机器人添加 关键词:XXXXX 回答:YYYY"
    gro=re.match("机器人添加 关键词:\w+ 回答:.+",str)
    if gro:
    print("pipei")
    else:
    print("bu pi pei")
    如果你想抓取x y 可以gro=re.match("机器人添加 关键词:(\w+) 回答:(.+)",str)这样 若匹配gro.group(1),gro.group(2)就是x y,我用+是给你限制了不能为空,若可以输入空你可以把+改为*

    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 3年前
    机器人添加\s关键词:[a-zA-Z\u4e00-\u9fa5]+\s回答:.+
    
    点赞 1 评论 复制链接分享
  • weixin_39416561 lyhsdy 3年前

    以下key就是匹配到的关键词,answer就是回答内容

     import re
    str = '"机器人添加 关键词:XXXXX 回答:YYYY"'
    key=re.search('关键词:([\u4e00-\u9fa5-A-Za-z0-9]+)',str)
    print(key.group(1))
    answer=re.search('回答:(.*?)"',str)  ##如果最后的双引号是中文,修改为:answer=re.search('回答:(.*?)”',str) 
    print(answer.group(1))
    
    点赞 评论 复制链接分享
  • jslang 天际的海浪 3年前

    标准的正则表达式是

    ^机器人添加\s+关键词:\s*[\w\u4e00-\u9fa5]+\s+回答:.+$
    

    如果是写在字符串中可能需要把“\”写成“\”

    "^机器人添加\\s+关键词:\\s*[\\w\\u4e00-\\u9fa5]+\\s+回答:.+$"
    
    点赞 评论 复制链接分享