C#:从该行中删除特定项目

时间:2016-06-16 19:42:23

标签: c# replace

我正在尝试添加if条件,如果存在特定单词,则从行中删除。

例如我有一个字符串保存为:主题:您的请求 - 5564 - 1345687974 然后我想删除主题:和 - 1345687974.我不知道我是对的但是 以下是我的方式。如果它是正确的,请告诉我

if (word == "Subject:*" && word == ^[0-9]*$)
{
    word = word.Replace("Subject:","");
    word = word.Replace("- "+ ^[0-9]*$,"");
}

注意:" " - 1345687974.行末尾包含其他数字。

更多说明:

如果我在Subjet之后有一个随机行:我将如何通过Subject:part和Regex部分删除。

示例

 Subject: Your Request - 5564 - 1345687974
 Subject: Approval Message - 7798 - 1567643389
 Subject: New Updates - 15676433
 Subject: test0616_Subline 1234 -1345687974

预期产出

Your Request - 5564
Approval Message - 7798
New Updates
test0616_Subline 1234

在第一个&第二个例子我想删除最后的Suvject和数字 - 在第三行,我将删除主题和 - 15676433

3 个答案:

答案 0 :(得分:0)

您可以使用字符串类的方法:

if (word.StartsWith("Subject") && word.EndsWith(" - 1345687974"))
{
    word = word.Replace("Subject: ", "").Replace(" - 1345687974", "");
}

请注意,string.Replace会替换所有替换文本。如果这是一个问题,请查看string.Remove。看到 https://msdn.microsoft.com/en-us/library/system.string_methods%28v=vs.110%29.aspx

答案 1 :(得分:0)

这会吗?

String word= "Subject: Your Request - 5564 - 1345687974";
string pat = @"^(Subject)(.*)(- )([0-9]{8,12})$";

Regex r = new Regex(pat, RegexOptions.IgnoreCase);
Match m = r.Match(word);
if (m.Groups.Count == 5)
{
    word = word.Replace("Subject:", "");

    String numberInString = m.Groups[4].Value;
    word = word.Replace(numberInString, "");
}

这会将字符串分解为4个组的模式。它检查组eq 5,因为组0始终是字符串本身。

可以使用正则表达式模式指定每个组。 这适用于长度在8到12位之间的任何数字。

答案 2 :(得分:0)

这涵盖了您的所有示例:

var lines = new string[] { "Subject: Your Request - 5564 - 1345687974", "Subject: Approval Message - 7798 - 1567643389", "Subject: New Updates - 15676433" };
var regex = @"Subject: (?<SUBJECT>[a-zA-Z ]*)(?: \- ) ?(?<ID>\d{4} )?";

for (int a = 0; a < lines.Length; a++)
{
    var match = Regex.Match(lines[a], regex);
    var subject = match.Groups["SUBJECT"].Value;
    var id = match.Groups["ID"].Value;

    Console.WriteLine("{0}{1}", subject, String.IsNullOrEmpty(id) ? "" : " - " + id);
}
Console.Read();

产地:

您的要求 - 5564

批准讯息 - 7798

新更新