我想用空格替换连字符,如果它的两边都没有数字的话。

 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/

10-12 00:31
查看更多