为了账号安全,请及时绑定邮箱和手机立即绑定

使用正则表达式在python中标记字符串

使用正则表达式在python中标记字符串

杨__羊羊 2021-03-19 14:11:43
我已按照以下格式输入数据,但并非由我决定key1: value1 key2: value2 key3: value3 key4 { key11: val11 key22: value22 } key5: value5 ............输入字符串将具有用冒号或大括号括起来的键值。我想对它进行标记化,我有以下想法:首先要有一个正则表达式来解析数据,直到找到a:或{优先于{over为止。:然后拆分并读取,直到达到我说的空白模式,然后递归遍历整个字符串我想知道是否可以编写正则表达式,例如(some_string)(特殊字符模式)(特殊字符模式可以是:或{优先于{)(字符串的其余部分)如果它是a,:那么对于其余的字符串,请从“ value1”中获取字符串部分并捕获它。处理剩余的字符串如果是{遍历,直到找到}并内部使用:上面定义的逻辑。例如a: 1 b: 2 c { d: 3 e: 4 } f: 5这应该给a:1b:2c { d: 3 e: 4 }f: 5
查看完整描述

1 回答

?
慕仙森

TA贡献1827条经验 获得超8个赞

您可以使用以下模式:


[^ ]+(?:: [^ ]+| \{[^}]+\})

例子:


import re

test = "a: 1 b: 2 c { d: 3 e: 4 } f: 5"

pattern = re.compile(r"[^ ]+(?:: [^ ]+| \{[^}]+\})")

for match in pattern.findall(test):

    print match


查看完整回答
反对 回复 2021-03-29
  • 1 回答
  • 0 关注
  • 138 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号