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