正则表达式不包括字符串

复古12

我正在使用以下PCRE将URLS与PHP中的preg_match()进行匹配:

~(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?«»“”‘’]))~

我试图从匹配中排除.onion网站。我注意到该站点上已经回答了一些类似的问题,但不幸的是无法将其解决方案转移到我的问题上。

到目前为止,我已经尝试过:

~(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?«»“”‘’]))(?!\.onion)~

和:

~(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?«»“”‘’]))(?:(?!\.onion).)~

没有运气(都仍然匹配http://test.onion)。谁能指出为什么这些都不起作用?

阿努巴瓦

您可以在正则表达式的开头插入此否定的前瞻

(?!.*?\.onion)

IE

~(?i)\b(?!.*?\.onion)((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?«»“”‘’]))~

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

要匹配的正则表达式模式,不包括... /

来自分类Dev

正则表达式,不包括特定字符

来自分类Dev

正则表达式匹配字符串开头但不包括

来自分类Dev

正则表达式-字符串以任何东西(但不包括东西)开头和结尾

来自分类Dev

正则表达式,不包括“ \ r \ n”

来自分类Dev

正则表达式匹配不包括第一个字符的字符串

来自分类Dev

正则表达式包括字符串的一部分,但不包括strig的另一部分

来自分类Dev

正则表达式不包括在引号中

来自分类Dev

正则表达式,不包括R中的单词

来自分类Dev

正则表达式,用于查找字符串中的每个单词(不包括定界符之间的单词)

来自分类Dev

使用正则表达式查找括号(包括括号)之间的特定字符串

来自分类Dev

Golang正则表达式替换不包括带引号的字符串

来自分类Dev

正则表达式不包括方括号

来自分类Dev

凌乱的字符串。到底正则表达式不包括“@”字符

来自分类Dev

正则表达式-不包括字符

来自分类Dev

正则表达式按新行拆分字符串,还包括空行新行

来自分类Dev

使用以点开头(不包括双精度)的正则表达式匹配字符串

来自分类Dev

正则表达式提取逗号之间的字符串,但包括引号

来自分类Dev

正则表达式可解析两个没有捕获组且不包括标记的标记之间的字符串

来自分类Dev

使用正则表达式获取字符串的文本,但不包括最后一部分?

来自分类Dev

正则表达式匹配字符串开头但不包括

来自分类Dev

正则表达式删除两个字符之间的字符串(不包括)

来自分类Dev

正则表达式-字符串以任何东西(但不包括东西)开头和结尾

来自分类Dev

正则表达式,用于查找字符串中的每个单词(不包括定界符之间的单词)

来自分类Dev

正则表达式替换所有字符串,不包括特殊前缀

来自分类Dev

Perl正则表达式匹配字符串,包括换行符

来自分类Dev

C#正则表达式,匹配但不包括匹配字符串之前的第一个字符

来自分类Dev

编程:使用正则表达式提取字符串(不包括空格)

来自分类Dev

正则表达式匹配大于长度的字符串,但不包括末尾的匹配

Related 相关文章

  1. 1

    要匹配的正则表达式模式,不包括... /

  2. 2

    正则表达式,不包括特定字符

  3. 3

    正则表达式匹配字符串开头但不包括

  4. 4

    正则表达式-字符串以任何东西(但不包括东西)开头和结尾

  5. 5

    正则表达式,不包括“ \ r \ n”

  6. 6

    正则表达式匹配不包括第一个字符的字符串

  7. 7

    正则表达式包括字符串的一部分,但不包括strig的另一部分

  8. 8

    正则表达式不包括在引号中

  9. 9

    正则表达式,不包括R中的单词

  10. 10

    正则表达式,用于查找字符串中的每个单词(不包括定界符之间的单词)

  11. 11

    使用正则表达式查找括号(包括括号)之间的特定字符串

  12. 12

    Golang正则表达式替换不包括带引号的字符串

  13. 13

    正则表达式不包括方括号

  14. 14

    凌乱的字符串。到底正则表达式不包括“@”字符

  15. 15

    正则表达式-不包括字符

  16. 16

    正则表达式按新行拆分字符串,还包括空行新行

  17. 17

    使用以点开头(不包括双精度)的正则表达式匹配字符串

  18. 18

    正则表达式提取逗号之间的字符串,但包括引号

  19. 19

    正则表达式可解析两个没有捕获组且不包括标记的标记之间的字符串

  20. 20

    使用正则表达式获取字符串的文本,但不包括最后一部分?

  21. 21

    正则表达式匹配字符串开头但不包括

  22. 22

    正则表达式删除两个字符之间的字符串(不包括)

  23. 23

    正则表达式-字符串以任何东西(但不包括东西)开头和结尾

  24. 24

    正则表达式,用于查找字符串中的每个单词(不包括定界符之间的单词)

  25. 25

    正则表达式替换所有字符串,不包括特殊前缀

  26. 26

    Perl正则表达式匹配字符串,包括换行符

  27. 27

    C#正则表达式,匹配但不包括匹配字符串之前的第一个字符

  28. 28

    编程:使用正则表达式提取字符串(不包括空格)

  29. 29

    正则表达式匹配大于长度的字符串,但不包括末尾的匹配

热门标签

归档