避免正则表达式的贪婪性,可以使用以下方法:
.*?
会尽可能少地匹配任意字符,而不是尽可能多地匹配。import re
text = "Hello, World! I love Python programming language."
pattern = "l.*?e"
result = re.findall(pattern, text)
print(result) # Output: ['ll', 'love']
import re
text = "Hello, World! I love Python programming language."
pattern = "l[a-z]+e"
result = re.findall(pattern, text)
print(result) # Output: ['love']
import re
text = "Hello, World! I love Python programming language."
pattern = r"([a-zA-Z])\1"
result = re.findall(pattern, text)
print(result) # Output: ['l', 'o', 'p']
以上是几种避免正则表达式贪婪性的常见方法,根据具体的需求选择适合的方法即可。
下一篇:避免制表符行发生变化的问题