我需要替换文本文件中的数字字符串列表。然而,如果字符串是另一个数字字符串的一部分,它不应该被更换:需要更换 字符串:111111 替换字符串:蒙面Regex.Replace - 跳过属于较长字符串的字符串
Text file:
111111
111111.text text
text text111111 text text
a111111
2111111
111111a
1111112
a111111a
Expected result:
MASKED
MASKED.text text
text textMASKED text text
aMASKED
2111111 -> Character 2 prevents masking
MASKEDa
1111112 -> Character 2 prevents masking
aMASKEDa
这是我的代码:
inputText = Regex.Replace(inputText, "(?<![0-9])" + stringToMask + "(?<![0-9])", "####MASKED####");
此代码只是跳过一切,并没有执行任何掩蔽。
应该不是第二个是 - 定向排除(<[0-9]?!)([0-9]?!)? – sh54 2011-04-12 10:10:51
什么sh54说。他应该得分:) – sehe 2011-04-12 10:16:45
@亨克,不,你不能。 '\ D'会是'[^ 0-9]'。 '!'属于断言'(?<!...)'的后面。 – stema 2011-04-12 10:24:15