使正则表达式匹配包含特殊字符的单词

时间:2017-06-15 12:25:03

标签: c# regex

我的代码是这样的:

string currentPageSlug = "securities/EBR#03L$ZZZ";
string patern= @"securities/(\w+)[\#\$]";
string res = Regex.Match(currentPageSlug, patern).Value;
Console.WriteLine(res);

给了我这个结果:

securities/EBR#

但我想得到:

securities/EBR#03L$ZZZ

整个单词包括所有特殊字符(#和$以及其他可能的字符) 我的正则表达式似乎不起作用。

1 个答案:

答案 0 :(得分:1)

您的正则表达式匹配单词后跟单个特殊字符。您需要在重复的构造[#$]中包含+,如下所示:

string patern= @"securities/((?:\w|[#$])+)";

请注意,由于#$字符类中使用,因此无需使用反斜杠\对其进行转义。