Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 需要帮助改进我的正则表达式以获得C风格的双斜杠注释吗_C#_Regex - Fatal编程技术网

C# 需要帮助改进我的正则表达式以获得C风格的双斜杠注释吗

C# 需要帮助改进我的正则表达式以获得C风格的双斜杠注释吗,c#,regex,C#,Regex,我试图创建正则表达式来匹配C#注释(双斜杠类型)。我创建的正则表达式几乎可以完美地工作,除非有一行只有两个反斜杠,没有实际注释,它开始匹配下一行,这是不应该的。这是我的正则表达式: (?![\n\r])\s?//[\w\W].+ 这是我的测试数据: using System; // This is a comment public class test { // this is also a comment // Hello! // } 我的正则表达式和预期的一样

我试图创建正则表达式来匹配C#注释(双斜杠类型)。我创建的正则表达式几乎可以完美地工作,除非有一行只有两个反斜杠,没有实际注释,它开始匹配下一行,这是不应该的。这是我的正则表达式:

(?![\n\r])\s?//[\w\W].+
这是我的测试数据:

using System;

// This is a comment

public class test
{
    // this is also a comment
    // Hello!
    //
}
我的正则表达式和预期的一样匹配,除了只有
/
的行。我的正则表达式与
/
和最后一个大括号匹配,这是不对的

这个

(?![\n\r])\s?//.*?$
将匹配到行的末尾,不再匹配

(?![\n\r])\s?//\w?

应该只捕捉示例中的注释。

作为旁注,这些是前斜杠。:-)一个问题:您还需要匹配像
var c//this
?@DanPuzey这样的注释吗?您是对的。我刚刚更新了我的问题,纠正了这个问题。加伯:是的,但它已经做得很好了。这个正则表达式似乎只匹配单独的双斜杠,其他的都不匹配,对不起。顺便说一句,我不懂[\w\w],你能解释一下吗?我在regexAlso中省略了这一部分,因为如果你试图匹配
[\w\w]
,而后面紧跟着一个换行符,那么这个
/
就不会匹配了。我把它放在[\w\w]中,因为我的印象是匹配任何单词,基本上匹配了后面的所有单词,我测试了你的正则表达式,现在它根本不匹配。