qq_41734591
2018-10-08 03:06
采纳率: 66.7%
浏览 721
已采纳

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

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

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

4条回答 默认 最新

  • xingjianfengaa 2018-10-08 05:21
    已采纳

    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,我用+是给你限制了不能为空,若可以输入空你可以把+改为*

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • threenewbee 2018-10-08 03:35
    机器人添加\s关键词:[a-zA-Z\u4e00-\u9fa5]+\s回答:.+
    
    评论
    解决 无用
    打赏 举报
  • 天际的海浪 2018-10-08 07:24

    标准的正则表达式是

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

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

    "^机器人添加\\s+关键词:\\s*[\\w\\u4e00-\\u9fa5]+\\s+回答:.+$"
    
    评论
    解决 无用
    打赏 举报
  • lyhsdy 2018-10-08 08:50

    以下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))
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题