簡體   English   中英

正則表達式在段落中找到第一個出現的事件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM