亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我的正則表達式匹配太多了。我怎么讓它停下來?

我的正則表達式匹配太多了。我怎么讓它停下來?

烙印99 2019-05-21 14:01:03
我的正則表達式匹配太多了。我怎么讓它停下來?J0000000: Transaction A0001401 started on 8/22/2008 9:49:29 AM J0000010: Project name: E:\foo.pf J0000011: Job name: MBiek Direct Mail TestJ0000020: Document 1 - Completed successfully我有這個巨大的丑陋的字符串,我正在嘗試使用正則表達式從中提取片段。在這種情況下,我想抓住“項目名稱”之后的所有內容,直到它說“J0000011:”的部分(每次11將是一個不同的數字)。這是我一直在玩的正則表達式Project name:\s+(.*)\s+J[0-9]{7}:問題是它不會停止,直到它碰到J0000020:最后。如何在第一次出現J [0-9] {7}時使正則表達式停止?
查看完整描述

5 回答

?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

在這里使用非貪婪量詞可能是最好的解決方案,也因為它比貪婪的替代方案更有效:貪婪的匹配通常盡可能地(在這里,直到文本的結尾?。┤缓笞匪葑址竺娴淖址麌L試匹配之后的部分。

但是,請考慮使用否定字符類:

Project name:\s+(\S*)\s+J[0-9]{7}:

\S 意思是“除了空白之外的所有東西,這正是你想要的。


查看完整回答
反對 回復 2019-05-21
?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

我還建議你使用“Expresso”試驗正則表達式 - 它是一個實用程序,是一個很好的(和免費的)實用程序,用于正則表達式編輯和測試。

它的一個優點是它的UI暴露了很多正則表達式功能,人們不熟悉正則表達式可能并不熟悉,因為它們很容易學習這些新概念。

例如,在使用UI構建正則表達式并選擇“*”時,您可以選中“盡可能少”復選框并查看生成的正則表達式,并測試其行為,即使您不熟悉之前的非貪婪表達。

可在其網站下載:http: //www.ultrapico.com/Expresso.htm

快遞下載:http: //www.ultrapico.com/ExpressoDownload.htm


查看完整回答
反對 回復 2019-05-21
  • 5 回答
  • 0 關注
  • 1230 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號