2009-05-05 21 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