我想用空格替换连字符,如果它的两边都没有数字的话。
string str = "Hefer 789-567 dfg-5mh";
str = Regex.Replace(str, @"[a-zA-Z]\-(\d+)", "$1");
输出量
Hefer 789-567 DF5MH
所需的输出
Hefer 789-567 DFG 5MH
最佳答案
您可以使用以下方法解决标题中描述的问题:
Regex.Replace(str, @"(?<=[A-Za-z])-", " ");
您可以使用以下方法解决您在问题正文中描述的问题:
Regex.Replace(str, @"(?<!\d)-|-(?!\d)", " ");
或无环视:
Regex.Replace(str, @"([^\d])-|-([^\d])", "$1 $2");
关于c# - 替换-如果前面有字母,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13470009/