我有一个类似的模式 " 你好,我是X和我的父亲的名字是Y.我的爱好正在等等。"。
我的目标是匹配模式" 你好,我是X和我的"。
我尝试使用正则表达式,但总是选择第二个"我的"。
即"你好,我是X和我父亲的名字是Y.我的"
我的正则表达式为(Hello)(.*)(My?)
我也试过了(Hello)(.*)(My?{0})
。但仍然没有工作。
你可以帮帮我吗?
答案 0 :(得分:1)
您需要使*
量词 lazy :
(Hello)(.*?)(My)
.*?
将匹配尽可能少的字符(与尽可能匹配的.*
相对)。
答案 1 :(得分:1)
使用非贪婪的方法尝试这个正则表达式。
(Hello.*?My)
答案 2 :(得分:0)
试试这个
Hello(.*?)(?=My)(\w{2})
你有一只贪婪的恐龙,但?
会让它成为一只懒惰的恐龙
这是一个糟糕的恐龙,他会吃掉所有东西 。*和。+只是这样 它会吃掉贪婪的一切
糟糕的贪婪dino会吃掉所有东西,然后尝试匹配它会尝试搜索My
但是他找不到它,因为他已经吃掉了它们。所以,他慢慢地开始呕吐这些字母......慢慢地......除非他找到y
然后M
。所以它匹配你的字符串中的最后一个。
当我们使它变得懒惰时,他不会吃掉完整的字符串,并且会满足于找到第一个My
。他会吃掉它然后去睡觉。)