我尝试使用.NET正则表达式替换字符串中的
元素 - 没有运气:)
假设以下字符串:
AA A C D A Some Text here
规则
上面所需的结果是(#替换字符):
AA#A C#D A#Some Text here
答案 0 :(得分:2)
这应该涵盖您的所有3个要求。请原谅格式;我不得不回头勾选
的前几行才能正确显示。
string pattern = @"(?<!^| )((?<!\s) (?!\s))(?!\1)";
string[] inputs = { " AA A C D A Some Text here", // original
" AA A C D A Some Text here" // space before/after
};
foreach (string input in inputs)
{
string result = Regex.Replace(input, pattern, "#");
Console.WriteLine("Original: {0}\nResult: {1}", input, result);
}
<强>输出:强>
Original: AA A C D A Some Text here
Result: AA#A C#D A#Some Text here
Original: AA A C D A Some Text here
Result: AA#A C#D A Some Text here
答案 1 :(得分:1)
我不熟悉C#的特殊正则表达式风格,但在PERL / PHP风格中,这对我有用:
s/(?<!\A| | ) (?! | )/#/g
这取决于负面的后观,负前瞻和\ A =输入转义序列的开始。
答案 2 :(得分:1)
您应该尝试以下示例:
string s = Regex.Replace(original, "(?<!( | |^)) (?!( | ))", "#");
答案 3 :(得分:0)
答案 4 :(得分:0)
你可以使用这个
[^^\s(nbsp;)](nbsp;)[^$\s(nbsp;)]