2010-07-09 82 views
1

考虑这样一个字符串,C#正则表达式替换

type="xxx.yyy.zzz, xxx.yyy, Version=2.0.3.0, Culture=neutral, PublicKeyToken=null" 

我读的resx文件,并想取代上述字符串的String.Empty不管版本是什么样的所有出现,但版本格式将保持不变,并且字符串的其余部分不会改变。我尝试了一些东西,但我有点紧张;并真的很感谢这方面的帮助。谢谢。

+0

我不明白:要更换整行与空字符串,如果它匹配的版本?或者如果它匹配'xxx.yyy.zzz'? – rakuo15 2010-07-09 13:38:36

+0

@ rakuo15整个行。 – 2010-07-09 14:15:09

回答

1
type="xxx\.yyy\.zzz, xxx\.yyy, Version=\d+\.\d+\.\d+\.\d+, Culture=neutral, PublicKeyToken=null" 
  • \d表示一个数字; \d+匹配一个或多个数字。
  • .是一个特殊字符,需要转义为\.

由于AC#正则表达式的字符串,它会看起来像:

pattern = "type=\"xxx\\.yyy\\.zzz, xxx\\.yyy, Version=\\d+\\.\\d+\\.\\d+\\.\\d+, Culture=neutral, PublicKeyToken=null\""; 
+0

嗯,如果有一个额外的空间或版本只指定为x.x.x或文化不是中性的话。我知道这不是你的正则表达式有错,而是缺少一些信息的问题。 – 2010-07-09 13:42:02

+0

@lasseespeholt OP表示_rest字符串不会改变_并且我依赖于该字符串。 – Amarghosh 2010-07-09 13:47:18

+0

是的,我知道:)再次,我知道你的正则表达式没有错误。但是额外的空间是否有资格获得“改变”? < - 问题为Bala R – 2010-07-09 13:50:15