我有一些特殊情况,正则表达式不适合。
实施例
1. <a href="abnvb/m'hhjhh/js jmm" hbbnb="bbn">bhjbhj</a>-----containing quote(') in between " " and having space in between
2. <a href="vvvbg" jhhbhh="tyrty">gffgd</a>
3. <a href=**abyuyyuub/m'hhjhh/js jmm** hbbnb="bbn">bhjbhj</a>----without quotes having space
我使用了来自here
的正则表达式我的正则表达式如下
<a\s+[^>]*\s*href\s*=('|"|)\s*((?:[^\1|>]|[\n\r])+)(\1)[ |>][^>]*?>(.*?)</a>
所以1和2工作正常但是3则给出了
abyuyyuub/m'hhjhh/js jmm but it should be
abyuyyuub/m'hhjhh/js
此外,我想知道如何匹配第一次出现,即如何匹配第一个双引号(“),单引号(')或空格
答案 0 :(得分:0)
如果您坚持让特定的正则表达式满足所有三个示例 - 您应该在第二个捕获组内的非捕获组中的排除项中添加\s
:[^\1|>]
到{{1}导致:
[^\1\s|>]
总体而言,以这种方式解析网址当然是一个“坏主意”(tm),正如之前在评论中所提到的那样。