Regex" \ / ~ece742 [\ w \ d \ / \。\?\ = \ - ] + \ .pdf"匹配" / ~ece742 /"

时间:2016-02-17 23:23:43

标签: regex grep

我试图获取所有pdf的链接'在一个文件中。这是我的课程网站。

文件名 - doku.php \?id \ =讲座

文件类型 - HTML

grep -Eo '\/~ece742[\w\d\/\.\?\=\-]+\.pdf' doku.php\?id\=lectures

此正则表达式在找到" / ~ece742 /"后停止。

如果我写

grep -Eo '\/~ece742\/\w+' doku.php\?id\=lectures

它确实在" / ~ece742 /"之后找到了一些文字。喜欢" / ~ece742 / abc123"。

以下是其中一个块:

<td class="col1"> L6 <a href="/~ece742/f12/lib/exe/fetch.php?media=onur-18-742-fall12-lecture6-asymmetric-multicore-afterlecture.ppt" class="media mediafile mf_ppt" title="onur-18-742-fall12-lecture6-asymmetric-multicore-afterlecture.ppt">ppt</a> <a href="/~ece742/f12/lib/exe/fetch.php?media=onur-18-742-fall12-lecture6-asymmetric-multicore-afterlecture.pdf" class="media mediafile mf_pdf" title="onur-18-742-fall12-lecture6-asymmetric-multicore-afterlecture.pdf">pdf</a> <a href="http://youtu.be/hzUQc7NvAnc?list=PLSEZzvupP7hNjq3Tuv2hiE5VvR-WRYoW4" class="urlextern" title="http://youtu.be/hzUQc7NvAnc?list=PLSEZzvupP7hNjq3Tuv2hiE5VvR-WRYoW4"  rel="nofollow">YouTube Video</a> </td>

在这种情况下,我想找到 -

&#34; /~ece742/f12/lib/exe/fetch.php媒体= ONUR-18-742-fall12-lecture6不对称-多核afterlecture.pdf&#34?;

我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

grep无法识别转义序列\w\d。扩展正则表达式中的等价物是[:alnum:]_

grep -Eo '/~ece742[[:alnum:]_/.?=\-]+\.pdf' doku.php\?id\=lectures

如果您想使用PCRE转义序列,请使用-P代替-E