regex - 有没有办法在正则表达式中使用 not (^) 来处理多个字符?

标签 regex string regex-negation

我想制作一个匹配所有相关补丁的正则表达式模式。

我要匹配的内容:

img src="image.png"
img src="http_image.png"

我不想匹配的内容:

img src="http://example/image.png"

我尝试匹配这些模式,但它们都不起作用:

\src="[^http://]\
\src="^(http://)\
\src="[^h][^t][^t][^p][^:][^/][^/]\
\src="([^h][^t][^t][^p][^:][^/][^/])\

我把 <> 去掉了 img-tag,因为否则我不能把它写成代码。
src 属性将始终使用双引号 (") 而不是单引号 (')。
它总是包含一个“http”源,而不是“https”或其他。

最佳答案

解决这个问题的方法是使用否定的前瞻断言:

^img src="(?!http:\/\/\S+).*"$

Rubular link

^                  : Start anchor
img src="          : Literal img src="
(?!http:\/\/\S+)   : To ensure the string following " is not a URL
.*                 : Anything else is allowed
"                  : Literal "
$                  : End anchor

关于regex - 有没有办法在正则表达式中使用 not (^) 来处理多个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5163818/

相关文章:

php - 获取非数字字符,然后在文本 block 的每一行上编号

java - 如何从Java中的html字符串中按顺序获取所有html标签

java - 如何解决 put(String,long) 找不到合适的方法

排除前缀和后缀的正则表达式

regex - sed regex可以模拟后向和前瞻吗?

javascript - 正则表达式,用于匹配包含一个单词但不包含另一个单词的URL

javascript - 使用正则表达式查找文本并仅获取其中的一部分

c# - 允许在正则表达式中使用希伯来字母

java - 如何转换 JSON 中的部分字符串?

java - java 将字符串 "3,55"转换为 "3.55"