C# javascript正则表达式的正则表达式

C# javascript正则表达式的正则表达式,c#,javascript,regex,C#,Javascript,Regex,我需要在C#中解析一些JavaScript代码,并找到其中的正则表达式 当使用RegExp创建正则表达式时,我能够找到。(因为表达式用引号括起来。)对于内联定义,类似于: var x = /as\/df/; foo(/xxx/); //assume function takes regex param 我在匹配模式方面面临困难。我需要从/开始,排除所有字符,直到找到/,但应忽略\/ 由于自动插入分号或正则表达式可能是其他语句的一部分,我可能不会在语句结尾(;)进行中继,例如: var x =

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

当使用RegExp创建正则表达式时,我能够找到。(因为表达式用引号括起来。)对于内联定义,类似于:

var x = /as\/df/;
foo(/xxx/); //assume function takes regex param
我在匹配模式方面面临困难。我需要从
/
开始,排除所有字符,直到找到
/
,但应忽略
\/

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

var x = /as\/df/;
foo(/xxx/); //assume function takes regex param
如果我是对的,JavaScript中的内联正则表达式中不允许使用换行符来节省时间。但是,以下情况是允许的:

var a=/regex1def/;var b=/regex2def/;
foo(/xxx/,/yyy/)
我需要一些正则表达式,比如捕获正确数据的
/.*/

这个怎么样:

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

这个怎么样:

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


在对RegexHero进行了几次试验后,这似乎奏效了<代码>/.*?[^\\]/。但不确定我是否错过了任何一个角落的案例。

在与RegexHero进行了几次试验后,这似乎奏效了<代码>/.*?[^\\]/。但我不确定我是否遗漏了任何细节。

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

a = a /b/ 1
foo = /*bar*/ + 1
a /= 5 //.*/hi
这段代码是有效的Javascript,但是这里的
/…/
都不是正则表达式

如果你知道你在做什么;),匹配转义字符串的表达式是“delimiter(转义或非转义的内容),delimiter”:


在您的例子中,
delim
/

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

a = a /b/ 1
foo = /*bar*/ + 1
a /= 5 //.*/hi
这段代码是有效的Javascript,但是这里的
/…/
都不是正则表达式

如果你知道你在做什么;),匹配转义字符串的表达式是“delimiter(转义或非转义的内容),delimiter”:


在你的情况下,
delim
/

我想这可能会对你有所帮助 var patt=/pattern/修饰符

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

我认为这可能会对您有所帮助 var patt=/pattern/修饰符

•模式指定表达式的模式

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

您可以使用它查找特定文本的regexp,您需要一个匹配的正则表达式。。。正则表达式?你不想同时匹配正则表达式修饰符吗?@SimonWhitehead:是的,我需要正则表达式来捕获jaavscript正则表达式。蒂姆:到目前为止,我对修饰符没有任何问题,但这将是一个你可以用来查找特定文本的regexp的附件。你想要一个匹配的正则表达式。。。正则表达式?你不想同时匹配正则表达式修饰符吗?@SimonWhitehead:是的,我需要正则表达式来捕获jaavscript正则表达式。蒂姆:到目前为止,我对修饰符没有任何问题,但这将是一个插件。当我与RegexHero核对时,这个表达式不会产生任何问题results@Tim你的意思可能是
\/(?:\\/[^\/])*\/
(C中没有分隔符)@Jerry:啊,我读过JavaScript,觉得他需要一个JavaScript正则表达式。在.NET中,它更容易:)@Tim Oh我忘了删除用于逃逸的额外反斜杠x3@KrishnaSarma:我误解了你的问题;我以为你需要的是JavaScript正则表达式,而不是.NET正则表达式。编辑。当我与RegexHero核对时,这个表达式不会产生任何结果results@Tim你的意思可能是
\/(?:\\/[^\/])*\/
(C中没有分隔符)@Jerry:啊,我读过JavaScript,觉得他需要一个JavaScript正则表达式。在.NET中,它更容易:)@Tim Oh我忘了删除用于逃逸的额外反斜杠x3@KrishnaSarma:我误解了你的问题;我以为你需要的是JavaScript正则表达式,而不是.NET正则表达式。编辑。这绝对是失败的。考虑<代码> /\/< /代码>。这肯定失败了。考虑<代码> /\/< /代码>。