我有以下字符串:
<A href="CarPage.asp?parent=CAR123+++&Color=RED">The Car is Red - Its Fast</a>
我想提取:
到目前为止我所拥有的是:
(?<=<A href="CarPage\.asp\?parent=)[A-Za-z0-9]*(\+\+\+&Color=)[A-Za-z0-9]{3}(\">)[A-Za-z0-9\- ]*(?=</a>)
但是当我们不在字符串边界时,我不确定如何设置正面和负面的前瞻和外观。
我知道,这是HTML ...我之前听过......“不要用正则表达式解析html ......” 我不需要比这更精细的东西。
非常感谢帮助。
谢谢!
答案 0 :(得分:2)
你不需要任何复杂的东西,你可以放弃这个:
/parent=(\w+).*Color=(\w+).*>(.*)</
然后从$1
,$2
和$3
中提取部分。根据实际输入的变化程度,您可能需要稍微收紧.*
部分。
例如,这一点Perl:
my $s = '<A href="CarPage.asp?parent=CAR123+++&Color=RED">The Car is Red - Its Fast</a>';
$s =~ /parent=(\w+).*Color=(\w+).*>(.*)</;
print join("\n", $1, $2, $3), "\n";
输出:
CAR123
RED
The Car is Red - Its Fast
答案 1 :(得分:1)
最好使用解析器,但是如果你的链接总是以完全相同的方式格式化(没有id,类,额外的参数,不同顺序的参数等,请尝试:
parent=(\w+?)\+*&Color=(\w+?)">(.*?)<
与穆的建议不同的是贪婪。