我與我的正則運算式模式作斗爭,我需要一些幫助。我正在嘗試抓取一些 javascript 內容來捕獲標簽和值對。
我從這個開始
"label" : "(.*)"[\s\S]*?"value" : "(.*)"
刮這樣的東西
"label" : "Something ?",
blabla
blabla2
"value" : "NO"
blabla
"label" : "Foo ?",
blabla
blabla2
"value" : "Bar"
它有效,它捕獲第一組中的標簽和第二組中的值。
Something ? / NO
Foo ? / Bar
我的問題是,有時我有一個標簽但沒有一個值。在這種情況下,我不想匹配這個孤立的標簽。
例如:
"label" : "Something ?",
blabla
blabla2
"value" : "NO"
blabla
"label" : "YouMad ?",
blabla
"label" : "Foo ?",
blabla
blabla2
"value" : "Bar"
給
Something ? / NO
YouMad ? / Bar
我嘗試了 Negative Lookahead,其他一些東西......但我被卡住了
任何幫助將不勝感激!
謝謝
https://regex101.com/r/gG3XxR/1
uj5u.com熱心網友回復:
您不應該使用(?!"label")[\s\S])*和使用否定字符類[^來交叉匹配標簽以防止某些回溯。
"label" : "([^"]*)"(?:(?!"label")[\s\S])*"value" : "([^"]*)"
正則運算式演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/491490.html
