2011-12-01 72 views
4

我需要一个正则表达式,使它匹配以下任何东西ascii 127以上(即7F十六进制及以上)。以下工作适用于给定的范围。范围和以上的正则表达式模式127

string pattern = "[\x00-\x1F]"; 
+0

那么,你有什么尝试?它有用吗?如果不是,为什么不呢? – 2011-12-01 05:11:39

+0

[\ x00- \ x1F] | [\ x7F] * – user357086

回答

3

尝试或运营商| (管道)

string pattern = "[\x00-\x1f]|[\x7f-\uffff]"; 

FF十六进制将是最大ASCII值。

下面是进一步参考备忘单: http://www.mikesdotnetting.com/Article/46/CSharp-Regular-Expressions-Cheat-Sheet

+1

我认为空格应该在字符类中删除?此外,这里不需要括号......并且有0xff以上的Unicode字符... – 2011-12-01 05:10:51

+0

是的,所以看起来像范围应该更加正确[\ x7f- \ xffff]? – user357086

+1

使用“\ uffff”。 “\ xffff”与“\ xff”+“ff”相同。 – 2011-12-01 05:21:50

0

或者:

  1. 接受在两个范围的字符(具有交替,[a-b]|[x-z]),或;
  2. 在字符组中使用多个范围([a-bx-z])或;
  3. 否定倒范围内的字符组([^c-w]
    • 的否定包括的事情一大堆c之前和w之后,所以它不是[一定]同前两者,但可以被用作优势。

a的适当的值,bcwx,和z被保留为一个[琐碎]读者练习。

快乐编码。