Replace Pioneer替换提取 不一定有的循环代码怎么选择性循环提取...
发布网友
发布时间:2024-10-22 08:22
我来回答
共1个回答
热心网友
时间:2024-10-22 09:48
一般正则表达式匹配不上就会返回空,不会被卡住。但是如果正则表达式太过抽象,或嵌套太多,或文本巨大,导致系统试图进行数百万次甚至更多次匹配,如果始终没有匹配就会尝试所有情况,造成了“被卡住”的现象。
具体来说,你的前一个例子,<a herf=".*">(.*?)<\/a>(.*?)
写成<a herf="[^"]*">([^<]*?)<\/a>([^<]*?)更具体而高效。
后一个例子,<td\s[^>]*>([^:]*?):<\/td>(.*?)¥([^<].*?)<
写成<td\s[^>]*>([^:<]*?):<\/td>(.*?)¥([^<].*?)<或再具体些更好。