用于查找包含 sublime 域的 href 的 PCRE 正则表达式?
PCRE Regular Expression for to find href which contains domain in sublime?
我一直在尝试寻找一个 PCRE 正则表达式来查找包含 www.aliexpress.com
的所有 links,如 :
<a href="http://www.aliexpress.com/af/category/200118006.html?spm=2114.030010108.0.774.bcoKC8&isAffiliate=y&g=y">Parkas</a>
我只想选择整个 href 或双引号下的 link 以将其替换为 #
但我想让它与 sublime 一起工作所以任何方式都会很高兴想知道!
我试过了,但我只能搜索整个 <a href="" > </a>
,如 :
<\s*a[^>]*>(.*?)<\s*/\s*a>
这应该有效:
(?<=\bhref=)\s*"([^"]*www.aliexpress.com[^"]*)
因为 Sublime Text uses the Perl Compatible Regular Expressions (PCRE) engine from the Boost library 你可以使用 \K
运算符来省略所有匹配的文本到 "emulate" 可变宽度回顾。
要将所有 href
链接与 www.aliexpress.com
匹配,请使用
\bhref=\s*"\K[^"]*www\.aliexpress\.com[^"]*
参见 Demo 1。
在 www.aliexpress.com
之后带有可选 /category
子字符串的先前类型链接可以与
匹配
\bhref=\s*"\K[^"]*www\.aliexpress\.com(?:/category\b)?[^"]*
参见 Demo 2。
正则表达式细分:
\bhref=\s*"\K
- 匹配整个单词 href
后跟 0 个或多个空格符号和双引号,并且 省略 全部
[^"]*
- 匹配除 "
之外的 0 个或多个字符
www\.aliexpress\.com
- 按字面意思匹配 www.aliexpress.com
(?:/category\b)?
- 匹配 /category
子串或不匹配(因为 ?
表示 匹配 1 或 0 次出现 )
[^"]*
- 匹配除 "
之外的 0 个或多个字符
我一直在尝试寻找一个 PCRE 正则表达式来查找包含 www.aliexpress.com
的所有 links,如 :
<a href="http://www.aliexpress.com/af/category/200118006.html?spm=2114.030010108.0.774.bcoKC8&isAffiliate=y&g=y">Parkas</a>
我只想选择整个 href 或双引号下的 link 以将其替换为 #
但我想让它与 sublime 一起工作所以任何方式都会很高兴想知道!
我试过了,但我只能搜索整个 <a href="" > </a>
,如 :
<\s*a[^>]*>(.*?)<\s*/\s*a>
这应该有效:
(?<=\bhref=)\s*"([^"]*www.aliexpress.com[^"]*)
因为 Sublime Text uses the Perl Compatible Regular Expressions (PCRE) engine from the Boost library 你可以使用 \K
运算符来省略所有匹配的文本到 "emulate" 可变宽度回顾。
要将所有 href
链接与 www.aliexpress.com
匹配,请使用
\bhref=\s*"\K[^"]*www\.aliexpress\.com[^"]*
参见 Demo 1。
在 www.aliexpress.com
之后带有可选 /category
子字符串的先前类型链接可以与
\bhref=\s*"\K[^"]*www\.aliexpress\.com(?:/category\b)?[^"]*
参见 Demo 2。
正则表达式细分:
\bhref=\s*"\K
- 匹配整个单词href
后跟 0 个或多个空格符号和双引号,并且 省略 全部[^"]*
- 匹配除"
之外的 0 个或多个字符
www\.aliexpress\.com
- 按字面意思匹配www.aliexpress.com
(?:/category\b)?
- 匹配/category
子串或不匹配(因为?
表示 匹配 1 或 0 次出现 )[^"]*
- 匹配除"
之外的 0 个或多个字符