正则表达式:如何接受单引号和双引号,但不能同时接受

菲尔

我该如何搭配

<a href="logout.html">Logout</a>

这个

<a href='logout.html'>Logout</a>

编辑(并捕获logout.htmllogout

但这不是

<a href="'.$var.'">'.$another_var.'</a>

现在我有这个

"^.*<a.*href=\"\\([^\"]+\\)\"[^>]+>\\([^<]+\\)</a>"

但是它只匹配双引号,并且也接受变量链接。

菲尔

Avinash Raj解决报价问题方法的可行/安全版本是:

<a .*?\bhref=\(['"]\)[^'"]*\1.*?>.*?</a>

作为字符串:

"<a .*?\\bhref=\\(['\"]\\)[^'\"]*\\1.*?>.*?</a>"

注意不要在不安全的地方使用贪婪运算符!例如:<a.*href是一个相当糟糕的主意。

编辑:原来,您只需要匹配中的URL和链接文本,在这种情况下,您将在这些周围添加其他组:

"<a .*?\\bhref=\\(['\"]\\)\\([^'\"]*\\)\\1.*?>\\(.*?\\)</a>"

然后询问第2组和第3组匹配的字符串。

在elisp中,您很可能会使用(match-string 2)(match-string 3),但这取决于您使用正则表达式的方式。

还要注意,正表达式不能匹配平衡表达式,因此在这种情况下它们不能总是提供完美的解决方案,并且您依赖于要处理的数据的假设。如果您的URL包含引号,则此正则表达式将失败。

当然,elisp通常在处理平衡表达式方面有很多支持,因此您可以改用更基本的形式匹配元素,然后使用forward-sexp更可靠的方式将其从开始引号移到结束引号。显然,这超出了这个问题的范围。

编辑2:显然,我实际上必须证明这一点。

重建者

与您原来的正则表达式之间的唯一区别是,由于您随后对问题进行了编辑,因此添加了额外的组。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

单引号,双引号和无引号的Javascript正则表达式

来自分类Dev

正则表达式混淆使用双引号和单引号

来自分类Dev

正则表达式用于PHP中的双引号和单引号

来自分类Dev

正则表达式以匹配单引号,双引号和/或空格

来自分类Dev

正则表达式匹配双引号和单引号之外的所有逗号

来自分类Dev

使用正则表达式从链接中提取单引号和双引号 url

来自分类Dev

如何使用正则表达式匹配单引号或双引号中的字符串

来自分类Dev

正则表达式:按逗号分割,但括号和引号中不包括逗号(单引号和双引号)

来自分类Dev

java-正则表达式使用空格分割字符串,但不考虑双引号或单引号

来自分类Dev

java-正则表达式使用空格分割字符串,但不考虑双引号或单引号

来自分类Dev

正则表达式匹配双引号,但不匹配双引号

来自分类Dev

正则表达式以匹配双引号引起的单引号

来自分类Dev

正则表达式提取单引号或双引号之外的字符串

来自分类Dev

正则表达式匹配按空格分隔的转义双引号/单引号?

来自分类Dev

Python:正则表达式lookbehind在单引号或双引号后得到单词

来自分类Dev

正则表达式提取单引号或双引号之外的字符串

来自分类Dev

查找单引号或双引号id属性正则表达式的值

来自分类Dev

使用正则表达式在 Python 中将转义的双引号替换为单引号

来自分类Dev

正则表达式以添加逗号和单引号

来自分类Dev

如何在JavaScript中使用正则表达式选择不在双引号/单引号之间的数字

来自分类Dev

如何在单引号和双引号PHP正则表达式模式中正确地转义反斜杠以匹配文字反斜杠

来自分类Dev

正则表达式通过忽略“已替换单引号”和“开始/结束单引号”来替换单引号

来自分类Dev

我如何回声单引号和双引号的表达式?

来自分类Dev

正则表达式处理带引号的字符串和双引号英寸

来自分类Dev

正则表达式提取双引号和引号 R 中的字符串

来自分类Dev

Ruby正则表达式提取单引号/双引号之间的字符串,其中可能包含转义字符

来自分类Dev

正则表达式的Python原始字符串表示法的单引号,双引号或三重双引号?

来自分类Dev

Ansible替换单引号正则表达式

来自分类Dev

正则表达式-单引号之间的匹配空间

Related 相关文章

  1. 1

    单引号,双引号和无引号的Javascript正则表达式

  2. 2

    正则表达式混淆使用双引号和单引号

  3. 3

    正则表达式用于PHP中的双引号和单引号

  4. 4

    正则表达式以匹配单引号,双引号和/或空格

  5. 5

    正则表达式匹配双引号和单引号之外的所有逗号

  6. 6

    使用正则表达式从链接中提取单引号和双引号 url

  7. 7

    如何使用正则表达式匹配单引号或双引号中的字符串

  8. 8

    正则表达式:按逗号分割,但括号和引号中不包括逗号(单引号和双引号)

  9. 9

    java-正则表达式使用空格分割字符串,但不考虑双引号或单引号

  10. 10

    java-正则表达式使用空格分割字符串,但不考虑双引号或单引号

  11. 11

    正则表达式匹配双引号,但不匹配双引号

  12. 12

    正则表达式以匹配双引号引起的单引号

  13. 13

    正则表达式提取单引号或双引号之外的字符串

  14. 14

    正则表达式匹配按空格分隔的转义双引号/单引号?

  15. 15

    Python:正则表达式lookbehind在单引号或双引号后得到单词

  16. 16

    正则表达式提取单引号或双引号之外的字符串

  17. 17

    查找单引号或双引号id属性正则表达式的值

  18. 18

    使用正则表达式在 Python 中将转义的双引号替换为单引号

  19. 19

    正则表达式以添加逗号和单引号

  20. 20

    如何在JavaScript中使用正则表达式选择不在双引号/单引号之间的数字

  21. 21

    如何在单引号和双引号PHP正则表达式模式中正确地转义反斜杠以匹配文字反斜杠

  22. 22

    正则表达式通过忽略“已替换单引号”和“开始/结束单引号”来替换单引号

  23. 23

    我如何回声单引号和双引号的表达式?

  24. 24

    正则表达式处理带引号的字符串和双引号英寸

  25. 25

    正则表达式提取双引号和引号 R 中的字符串

  26. 26

    Ruby正则表达式提取单引号/双引号之间的字符串,其中可能包含转义字符

  27. 27

    正则表达式的Python原始字符串表示法的单引号,双引号或三重双引号?

  28. 28

    Ansible替换单引号正则表达式

  29. 29

    正则表达式-单引号之间的匹配空间

热门标签

归档