-2

如何编写只允许[], ', /, \, space, +, -, *, (), {},&^的正则表达式@

我想要在 dotnet 中工作的正则表达式。请帮我?

4

3 回答 3

2

这应该这样做

/[[\]'/\\@ ]+/

解释

  NODE                     EXPLANATION
--------------------------------------------------------------------------------
  [[\]'/\\@ ]+             any character of: '[', '\]', ''', '/',
                           '\\', '@', ' ' (1 or more times (matching
                           the most amount possible))

笔记:

  • \]被转义,因为它出现在括号 ( []) 对内
  • \\被转义,因为\是转义字符

根据您的评论更新

/[[\]'/\\@ &(){}+$%#=~"-]+/
于 2012-12-29T09:35:26.440 回答
0

要匹配 1 个或多个字符:

[[\]'/\\@ ]+

要也匹配空字符串,请将 + 更改为 *,即

[[\]'/\\@ ]*
于 2012-12-29T09:35:03.083 回答
0

在 C#.NET 上试试这个:

using System;
using System.Text.RegularExpressions;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
  string txt=",'/\\ @";

  string re1=".*?"; // Non-greedy match on filler
  string re2="(@)"; // Any Single Character 1

  Regex r = new Regex(re1+re2,RegexOptions.IgnoreCase|RegexOptions.Singleline);
  Match m = r.Match(txt);
  if (m.Success)
  {
        String c1=m.Groups[1].ToString();
        Console.Write("("+c1.ToString()+")"+"\n");
  }
  Console.ReadLine();
    }
  }
}

希望能帮助到你 :)

于 2012-12-29T09:42:24.847 回答