[英]Regex Finding the First Occurrence in a Paragraph
我有一個模式,如“ 你好,我是X,我的父親的名字是Y.我的愛好正在玩等等”。
我的目標是匹配模式“ 你好,我是X和我的 ”。
我嘗試使用正則表達式,但它始終選擇第二個“我的”。
即“你好,我是X,我父親的名字是Y.我的 ”
我的正則表達式是(Hello)(.*)(My?)
我也嘗試過(Hello)(.*)(My?{0})
。但仍然沒有工作。
你能幫幫我嗎?
你需要使*
量詞懶惰 :
(Hello)(.*?)(My)
.*?
將匹配盡可能少的字符(而不是.*
匹配盡可能多的字符)。
使用非貪婪的方法嘗試這個正則表達式。
(Hello.*?My)
嘗試這個
Hello(.*?)(?=My)(\w{2})
你有貪吃的恐龍但是?
會讓它變成懶惰的恐龍
這是一個糟糕的恐龍,它會吃掉所有阻礙它的東西。*和。+就是這樣,它只會吃掉它貪婪的一切
糟糕的貪婪恐龍會吃掉所有東西,然后嘗試匹配它會嘗試尋找My
但他找不到它,因為他已經吃掉了它們。 所以,他慢慢地開始嘔吐這些字母......慢慢地......除非他找到y
然后是M
所以它匹配你的字符串中的最后一個。
當我們把它變得懶惰時,他不會吃完整個字符串,並且會滿足於找到第一個My
。 他會吃它然后去睡覺:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.