我们如何在正则表达式中处理缺少的字段?
我有以下字符串,但有些人遗漏了Id ...我希望我的正则表达式读取它存在的Id但忽略此字段不存在的位置。怎么去呢?有什么建议吗?
SessionId":1500000055031,"Id":235596,"Te":"XXnt",
SessionId":1500000055031,"Id":235596,"Te":"XXnt",
"SessionId":1500000055032,"Te":"CreateEreTree",
"SessionId":1500000055032,"Te":"CreateEreTree",
"SessionId":1500000055032,"Te":"CreateEreTree",
SessionId":1500000055031,"Id":235596,"Te":"XXnt",
SessionId":1500000055031,"Id":235596,"Te":"XXnt",
SessionId":1500000055031,"Id":235596,"Te":"XXnt",
SessionId":1500000055031,"Id":235596,"Te":"XXnt",
以下是我目前所关注的正则表达式。
\w*":(\d*)."\w*":(\d*),"\w*":"(\w*)",
答案 0 :(得分:0)
使用前瞻
(?=.*"\bId\b"\s*:\s*\d+)^.*$
<强> Regex Demo 强>
假设"
可以存在或不存在,并且您的ID
中只有6位数字显示在您的输入中,这将是
(?=.*"?\bId\b"?\s*:\s*\d{6}[^\d])^.*$
<强> Regex Demo 强>
答案 1 :(得分:0)
好吧,只是修复你的正则表达式。你可以使用可选的构造?
来捕获它是否存在而忽略它。
\w*":(\d*).(?:"\w*":(\d*),)?"\w*":"(\w*)",