我试图使用regex将一个字符串拆分成两个部分。字符串的格式如下:
text to extract<number>
我一直在使用(。*?)<和<(。*?)>它工作正常,但在读入正则表达式一点,我刚开始怀疑为什么我需要?在表达式中。我只是这样做,通过这个网站找到他们后,所以我不能确切的区别是什么。
它是贪婪和非贪心量词之间的区别。
考虑输入101000000000100。
使用1. * 1,*是贪婪 – 它将一直匹配到结束,然后回溯,直到它可以匹配1,留下1010000000001。
。*?是非贪婪的。 *将匹配什么,但将尝试匹配额外的字符,直到它匹配1,最终匹配101。
所有量词具有非贪婪模式:。*?。 ?,{2,6}?,甚至。
在你的情况下,类似的模式可以是<([^>] *)> – 匹配大于号的任何东西(严格地说,它匹配除>之间的<和>之间的零个或多个字符)。