2009-05-05 79 views
2

我有这样一个行的文本文件:如何使用正则表达式替换特定字符串中的非单词字符?

SendersTimeSeriesIdentification: COMPANY_A/COMPANY_B/REF_7/20090505 

我想以字符n替换值部分的所有非字字符,像这样:

SendersTimeSeriesIdentification: COMPANYnAnCOMPANYnBnREFn7n20090505 

但整个文件中都有类似的字符串,它们必须保持不变。一个例子是:

MessageIdentification: REF_7/VER_1/20090505 

我想我必须用回顾后,我来到了这个尝试(VB.NET):

Regex.Replace(fileContentString, "(?<=SendersTimeSeriesIdentification:)(\W)", "0") 

这不工作,我想它。所以我的问题是:
是否有可能用一个Regex.Replace调用来替换特定字符串中的所有非单词字符?怎么样?

回答

2

试试这个:

Regex.Replace(fileContentString, "(?<=SendersTimeSeriesIdentification:\s.*)[_\W]", "0") 

这之后替换为 “0” 的所有\ W和_字符 “SendersTimeSeriesIdentification:”。

2

而不是作为一个单一的正则表达式替换,我会将文件拆分成行,然后只处理以“SendersTimeSeriesIdentification:”开头的行。 这样的正则表达式替换是很好,很简单。

+0

Kamarey的答案是正确的,但如果可以的话,我会采取这种方法。 – 2009-05-05 10:08:36

+0

@Alan M:我同意。 “如果我能做到”是这里的关键。 :-) – SinkovecJ 2009-05-05 11:20:29