在 C# 中创建正则表达式 [关闭]

Posted

技术标签:

【中文标题】在 C# 中创建正则表达式 [关闭]【英文标题】:Creating a regular expression in C# [closed] 【发布时间】:2019-09-16 17:53:57 【问题描述】:

我从查询中得到 3 种字符串:

**TYPE1 :**["type1"]
**TYPE2 :**["type2 type2 type2"]
**TYPE3 :**["type3 type3"]

我写了一个代码来只提取单词或句子,但是代码给出了错误,请纠正我在代码中的错误。

// error in regular expression
Regex _regex = new Regex(@"\"\w.+\"");
Match _match = _regex.Match(temp);
if (_match.Success)

    resourceAnalyticsModel.ResourceFieldName = _match.Value;

【问题讨论】:

抛出了哪个错误? 我将其命名为 "\"type3 type3\"" 但我想要 "type3 type3" 现在呢?它会引发错误还是得到错误的结果?准确! 【参考方案1】:

尝试以下:

            string[] inputs =  "**[\"type1\"]", "**[\"type2 type2 type2\"]", "**[\"type3 type3\"]" ;

            foreach (string input in inputs)
            
                Regex _regex = new Regex("\"([^\"]+)");
                Match _match = _regex.Match(input);
                Console.WriteLine(_match.Groups[1].Value);
            

【讨论】:

当前结果:"type2 type2 type2 预期结果:type2 type2 type2 代码给出了预期的结果。不知道你做错了什么。【参考方案2】:

当您使用文字字符串(字符串前的@)时,您必须通过双引号转义引号,因此您的模式应该是:

Regex _regex = new Regex(@"""\w.+""");

或者,如果您不想使用文字字符串:

Regex _regex = new Regex("\"\\w.+\"");

【讨论】:

以上是关于在 C# 中创建正则表达式 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在Ruby中创建URL排列的正则表达式

使用正则表达式库在 C++ 中创建词法分析器?

正则表达式在中间有 @ 字符

使用正则表达式从文件名中创建一个包含多个可能字符串的列表[重复]

正则表达式查找html标签c#之外的任何文本[关闭]

使用 C# 中的正则表达式操作检查 EditText 上的有效电子邮件 [关闭]