Regex чистящий шнур - PullRequest
       2

Regex чистящий шнур

0 голосов
/ 26 декабря 2018

У меня есть следующая строка:

Fox jumps over the rope (1):AB 123

Я пытаюсь использовать Regex в C #, чтобы убрать это.Мне нужно это как:

Fox jumps over the rope.

Я не могу сопоставить эту строку с помощью регулярного выражения

string badstring = "Fox jumps over the rope (1):AB 123";
string goodstring = Regex.Replace(strIn, @"[^\w\.@-]", "",
                                 RegexOptions.None, TimeSpan.FromSeconds(1.5));

Строка, которая будет удалена, должна соответствовать числувнутри скобок и всего текста после него.

Ответы [ 4 ]

0 голосов
/ 26 декабря 2018
var s = "Fox jumps over the rope (1):AB 123";
var x = s.Substring(0, s.IndexOf("(") - 1);
// or: var x = s.Split(" (")[0];
0 голосов
/ 26 декабря 2018

Если вы хотите удалить суффикс ("(1):AB 123" в примере), вы можете попробовать использовать Linq вместо регулярных выражений : с помощью TakeWhile мы получим все необходимые символы, пока не появится суффикс.

  using System.Linq;

  ...

  string raw = "Fox jumps over the rope (1):AB 123";

  // "Fox jumps over the rope "
  string cleared = string.Concat(raw
    .TakeWhile(c => char.IsLetter(c) || char.IsWhiteSpace(c)));
0 голосов
/ 26 декабря 2018

Вы можете использовать

Regex.Replace(badstring, @"\s*\(\d+\).*", "")

Регулярное выражение \s*\(\d+\).* соответствует

  • \s* - 0+ пробельных символов
  • \(\d+\) - a (, затем 1+ цифр, )
  • .* - остаток строки.

Regex.Replace заменяет все непересекающиеся вхождения на пустую строку.

0 голосов
/ 26 декабря 2018
    String Pattern = "[^a-zA-Z\\s]+[a-zA-Z]*";
    String StringToClean = "Fox jumps over (1):AB 123 the rope (1):AB 123";
    String StringCleaned = Regex.Replace(StringToClean, @Pattern, "");
    String Cleaned = Regex.Replace(StringCleaned, @"[\s]+", " ");
    Console.WriteLine(Cleaned);

Результат = Фокс перепрыгивает через веревку

Проверено на RegexStorm Проверено на C #: Фрагмент

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...