我正在使用:
"<a\b[^>]*href=\"\\lyrics\\*\">(.*?)</a>";
我正试图找到这些参数下的值:
<a href="/lyrics/anything.html">This is what I need</a>
我需要找到“这就是我需要的东西”,但“任何东西”会根据链接而改变。我不想在所有'a'标签内找到文本,但只有其中一些在lyrics文件夹中。我不明白为什么这个目前不起作用?我很难解释,但提前谢谢。哦,我理解正则表达式也许不是最好的方法,但是,我真的很想看看它。
答案 0 :(得分:2)
您正在转义\\
而非使用/
(/lyrics/
而不是\lyrics\
。
此外,如果您要匹配任何非\\*
的字符,\
将匹配0个或更多"
个字符。
以下是:
"<a\b[^>]*href=\"/lyrics/[^\"]*\">(.*?)</a>"
答案 1 :(得分:0)
您的斜线是错误的方式(即组成路径的斜线)并且您在*之前错过了一个点:
<a\b[^>]*href=\"/lyrics/.*\">(.*?)</a>
答案 2 :(得分:0)
取决于您使用的RegEx引擎。鉴于Perl或Java引擎,我认为这是错误的。
\b
是不必要的
\\lyrics\\*
应该是/lyrics/.*
(如果是Perl,那么你也需要逃避/
。)