C# 正则表达式设置单词字符和匹配精确单词

C# 正则表达式设置单词字符和匹配精确单词,c#,regex,C#,Regex,我需要我的C#regex只匹配完整的单词,并且我需要确保+-/*()也能划界单词(我不确定最后一部分是否已经设置为那样)。我发现regex非常混乱,希望在这方面得到一些帮助。 目前,我的正则表达式是: public Regex codeFunctions = new Regex("draw_line|draw_rectangle|draw_circle"); 谢谢!:) 试试看 public Regex codeFunctions = new Regex(@"\b(draw_line|draw

我需要我的C#regex只匹配完整的单词,并且我需要确保+-/*()也能划界单词(我不确定最后一部分是否已经设置为那样)。我发现regex非常混乱,希望在这方面得到一些帮助。 目前,我的正则表达式是:

public Regex codeFunctions = new Regex("draw_line|draw_rectangle|draw_circle");
谢谢!:)

试试看

public Regex codeFunctions = new Regex(@"\b(draw_line|draw_rectangle|draw_circle)\b");
\b
表示匹配单词边界,即从非单词字符转换为单词字符(或反之亦然)

单词字符包括字母、数字和下划线符号。非单词字符包括所有其他字符,包括
+-/*()
,因此它应该适合您

有关更多详细信息,请参阅

字符串开头的
@
将字符串设为a,否则必须键入两个反斜杠才能设为一个反斜杠。

要匹配任何单词,还是只匹配上面列出的单词?要匹配任意单词,请将其替换为创建正则表达式对象的位:

new Regex (@"\b(\w+)\b");
将来,如果希望更多字符被视为空白字符(例如下划线),我建议使用String.Replace-ing将它们替换为空格字符。也许有一种聪明的方法可以让正则表达式达到同样的效果,但我个人认为这太聪明了。字符串.Replace版本很明显


另外,我不得不建议您阅读正则表达式。是的,在你习惯它们之前,它们看起来像是线路噪音,但一旦你习惯了,它们就很方便,而且有很多好的资源可以帮助你。

它似乎与任何东西都不匹配。你能提供一个代码示例来说明问题吗?您要匹配的字符串是什么?对不起,我忘记了字符串开头的
@
。你能再试一次吗?很好用!非常感谢你!