我想從模式重複幾次的法律文本中提取一些字符串。獲取與正則表達式最短匹配 - 懶惰量詞
我不確定我明白懶惰量詞(?)是如何工作的。從我閱讀的內容來看,它應該儘可能少地使用字符來捕捉比賽。但它似乎沒有這樣做,在我的例子如下:
對不起,西班牙文的文字,但我想它是很簡單,足以遵循。
... POR LA afirmativa.losseñoresjueces doctores genoud,打者,德 拉扎裏,roncoroniÿ索里亞,POR洛杉磯mismos fundamentos德拉塞尼奧拉 jueza doctora高根,votaron洛杉磯西甲cuestion planteada tambien POR LA negativa.a la tercera cuestion planteada,laseñorajueza doctora kogan dijo:..(text)... voto por la afirmativa.losseñoresjueces doctores genoud e hitters,por los mismos fundamentos de laseñora jueza doctora kogan, votaron la tercera cuestion planteada por la afirmativa.a la tercera cuestion planteada,elseñorjuez doctor de lazzari dijo:...
我試圖捕捉字符串 「洛杉磯señoresjueces」(4號線)和 「votaron拉tercera cuestion planteada POR LA afirmativa」 之間的文本。這個模式有兩個匹配,因爲字符串「losseñoresjueces」出現兩次,一次在開始,然後在第四行。
所以我嘗試使用懶惰量詞(。*?)來獲得最短的2場比賽:
(los señores jueces(.*?)votaron la tercera cuestion planteada por la afirmativa)
但它似乎沒有工作,它的最長的字符串相匹配,從第1行,而不是從第二(最短)發生開始。我正在測試的正則表達式https://regex101.com/
Apreciate任何幫助。
謝謝。
這不是懶惰的量詞是如何工作的。事實上,懶惰的量詞在這裏沒有任何幫助。 – 2015-02-11 15:03:19
延遲量詞影響如何從_current position_中的一組可能匹配中選擇匹配。它不會影響匹配位置的選擇 - 它總是最左邊的一個。所以RE引擎掃描你的字符串,找到「begin」字符串,進一步掃描,直到它遇到「結束」字符串,停在那裏,並沒有進一步嘗試找到「更好」的匹配。 – georg 2015-02-11 15:07:15
感謝您澄清georg,我誤解了懶惰量詞的使用。 – 2015-02-11 15:16:42