Regex for JavaScript 正则表达式

本文关键字:正则表达式 JavaScript for Regex | 更新日期: 2023-09-27 18:32:46

我需要解析一些 C# 中的 JavaScript 代码并找到其中的正则表达式。

当使用正则表达式创建正则表达式时,我能够找到。(因为表达式括在引号中。当涉及到内联定义时,如下所示:

var x = /as'/df/;

我面临着匹配模式的困难。我需要从/开始,排除所有字符,直到找到/,但应该忽略'/

由于自动分号插入或正则表达式可能是其他语句的一部分,我可能不会在语句( ; )的末尾中继,例如:

foo(/xxx/); //assume function takes regex param

如果我是对的,JavaScript 中的内联正则表达式中不允许换行以节省我的一天。但是,允许以下情况:

var a=/regex1def/;var b=/regex2def/;
foo(/xxx/,/yyy/)

我需要像/.*/这样的正则表达式来捕获正确的数据。

Regex for JavaScript 正则表达式

您无法仅使用正则表达式可靠地解析编程语言。尤其是Javascript,因为它的语法相当模糊。考虑:

a = a /b/ 1
foo = /*bar*/ + 1
a /= 5 //.*/hi

这段代码是有效的Javascript,但这里/.../都不是正则表达式。

如果您知道自己;)在做什么,则用于匹配转义字符串的表达式是"分隔符,(转义或不转义的内容),分隔符":

 delim ( ''. | [^delim] ) * delim

在您的案例中/ delim

在使用RegexHero进行了几次试验后,这似乎有效。 /.*?[^'']/ .但不确定我是否缺少任何角落案例。

这个怎么样:

Regex regexObj = new Regex(@"/(?:''/|[^/])*/");

解释:

/       # Match /
(?:     # Non-capturing group:
 ''     # Either match '
 /      # followed by /
|       # or
 [^/]   # match any character except /
)*      # Repeat any number of times
 /      # Match /
我认为

这可能会对您有所帮助var patt=/pattern/modifiers;

•模式指定表达式的模式•修饰符指定搜索是否应为全局搜索、区分大小写等。