我的文本文件有这样一行:

SendersTimeSeriesIdentification: COMPANY_A/COMPANY_B/REF_7/20090505

我想用值 n 替换值部分中的所有非字符字符,如下所示:

SendersTimeSeriesIdentification: COMPANYnAnCOMPANYnBnREFn7n20090505

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

MessageIdentification: REF_7/VER_1/20090505

我想我必须使用lookbehind,然后我开始尝试(VB.NET):

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

这不符合我的要求。所以我的问题是:
是否可以用一个Regex.Replace调用替换特定字符串中的所有非单词字符?怎么样?

有帮助吗?

解决方案

试试这个:

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

用“0”替换所有\ W和_字符。在“SendersTimeSeriesIdentification:”之后。

其他提示

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top