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

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

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

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

机器人添加\s关键词:[a-zA-Z\u4e00-\u9fa5]+\s回答:.+

标准的正则表达式是

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

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

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

以下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))