我在生活中对正则表达的工作很少。所以,当我正在学习这个问题时,请带上我这个问题的新手。
我已经制作了一个正则表达式来从网址列表中获取特定的网址。
以下是列表:
http://www.xxxx.com/us/en/brothers---sisters/one/maria-lang-1-c671030p2313063.html
http://www.xxxx.com/us/en/lookbook-c471503.html
http://www.xxxx.com/us/en/pictures-c496502.html
http://www.xxxx.com/us/en/woman/shoes/high-heels-c269195.html
http://www.xxxx.com/us/en/woman/handbags-c269200.html
http://www.xxxx.com/us/en/woman/handbags/messenger-bags-c269202.html
我的正则表达式:
(us\/en\/)^(lookbook)|^(brothers---sisters)|^(pictures)[a-z0-9\-\/]*(c\d+(p\d+)?).html
我不想:仅提取前三个网址,但是当我在在线测试人员上测试时,这个正则表达式会崩溃。虽然,我已经知道当我删除第一个' ^'来自正则表达式的运算符。它至少在没有崩溃的情况下运行,但当然我没有得到相关的结果。
我一直在敲我的头很长一段时间,但无法找到关于我的概率的任何答案。请帮忙。
答案 0 :(得分:1)
您错放了插入符号^
,请使用:
(us\/en\/)(lookbook|brothers---sisters|pictures[a-z0-9\-\/]*c\d+(p\d+)?\.html)
根据评论进行编辑:
使用负向前看来匹配网址但前3:
(us\/en\/)(?!lookbook|brothers---sisters|pictures[a-z0-9\-\/]*c\d+(p\d+)?\.html)