匹配双斜杠但不匹配http://或https://

Cha*_*les 2 regex

我正在尝试使用正则表达式匹配来实现语法高亮,用于表示使用的单行注释//.但是,在代码中有些地方我们将URL(以http://或开头https://)存储为字符串,显然这些不应该被标识为注释.如何构建正则表达式字符串以正确匹配两种情况?

目前,我用来匹配的正则表达式//,但仍然错误地处理URL,是这样的:

[\/][\/]+.*

我最接近尝试排除网址的尝试是:

[^:][\/][\/]+.*

但这并不完美,因为它要求在前面有一些特征//.可能是这两个斜杠是该行的前两个字符,在这种情况下它不起作用.使[^:]可选项也不起作用,因为它修复了上述情况,但随后http://或https://再次不正确地匹配.

Fed*_*zza 6

你可以使用像这样的正则表达式的负向lookbehind:

(?<!http:)\/\/
Run Code Online (Sandbox Code Playgroud)

对于这两种协议,您可以使用类似的功能

(?<!http:|https:)\/\/
Run Code Online (Sandbox Code Playgroud)

工作演示