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/)
我需要像/.*/
这样的正则表达式来捕获正确的数据。
您无法仅使用正则表达式可靠地解析编程语言。尤其是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;
•模式指定表达式的模式•修饰符指定搜索是否应为全局搜索、区分大小写等。