文章目录

在正则表达式里想要匹配多行:

([\s\S]*)

想要匹配到到一定区域内的内容可以考虑非贪婪匹配:

例如想要匹配 “<object name=‘暗黑3’ size=‘12’></object>” 中的name值“暗黑3

要使用表达式“<object name=’(.+?)’” (非贪婪匹配) 而不能使用“<object name=’(.+)’” (贪婪匹配)。因为这个表达式会匹配出这样的结果“暗黑3’ size=‘12”,这并不是我们想要的。


简单描述下贪婪匹配和非贪婪匹配:

例如:针对字符串“LeeeeLeeeeL

贪婪模式:

(L)(\w+) “\w+” 将匹配第一个"L"之后的所有字符。结果:“eeeeLeeeeL” (L)(\w+)(L) “\w+” 将匹配第一个"L"和最后一个"L"之间的所有字符。结果:“eeeeLeeee”

非贪婪模式:

(L)(\w+?) “\w+?” 将尽可能少的匹配第一个"L"之后的字符。结果:“e” (L)(\w+?)(L) “\w+?” 将匹配以第一个"L"开头以第二个"L"结尾的字符。结果:“eee”