C#如何移除字符串中第二个‘-’之后的所有内容
C# 截取第二个‘-’之前的字符串内容
针对你的需求,这里提供几种实用的实现方式:
方法一:Split分割后拼接
通过Split方法将字符串按'-'分割为数组,取前两个元素再用'-'连接,逻辑直观易懂:
string original = "P037315F1-FB12-40-Fully Threaded MSB HOT DIP GALVANIZED"; string[] parts = original.Split('-'); string result = parts.Length >= 2 ? $"{parts[0]}-{parts[1]}" : original; // 输出结果:P037315F1-FB12
如果原字符串不足两个'-',直接返回原字符串避免报错。
方法二:IndexOf定位截取
通过两次IndexOf找到第二个'-'的位置,再截取子串,性能更优(无需分割整个字符串):
string original = "P037315F1-FB12-40-Fully Threaded MSB HOT DIP GALVANIZED"; int firstDashPos = original.IndexOf('-'); string result = original; if (firstDashPos != -1) { int secondDashPos = original.IndexOf('-', firstDashPos + 1); if (secondDashPos != -1) { result = original.Substring(0, secondDashPos); } } // 输出结果:P037315F1-FB12
方法三:正则表达式匹配
用正则匹配开头两个由'-'分隔的片段,适合更复杂的匹配场景:
using System.Text.RegularExpressions; string original = "P037315F1-FB12-40-Fully Threaded MSB HOT DIP GALVANIZED"; Match match = Regex.Match(original, @"^[^-]+-[^-]+"); string result = match.Success ? match.Value : original; // 输出结果:P037315F1-FB12
内容的提问来源于stack exchange,提问作者AnyName35425
相关产品推荐
相关产品推荐

