2012-05-24 3 views
1

Я пытаюсь удалить символы в строке PRIOR любым ЛВГОМАМ, отличным от алфавитно-цифровых символов. Например, у вас есть имя «Джеймс Ebanks-Blake», я могу разделить это в массив с помощью:Удалите символы перед любыми специальными символами C#

var s = "James Ebanks-Blake".Split(' '); 

Даже если есть более чем один пробел, это будет просто сделать несколько индексов массива. Итак, мне нужно сделать петлю через все массивы, найти индексы со специальным символом, а затем удалить все индексы и специальный символ.

Может ли кто-нибудь мне помочь?

+4

Каков ваш ожидаемый результат выше? «Блейк»? Что вы считаете «особым» персонажем? –

+0

Я только хочу получить «Блейк» в этом случае. Таким образом, особыми символами будут те, которые не соответствуют z или никаким цифрам. Таким образом, тот же код будет работать, если имя человека будет Scarlet O'Hara. (Который даст «Хару», и хотя это может быть тривиально, бывают случаи, когда это будет уместно ... – GenXisT

+0

Итак, вы могли бы ожидать только «Хару» из примера Алой? –

ответ

3

Это работает здесь

[-^$#](.*) 

Просто добавьте, что вы считаете специальные символы внутри класса символов

Строка, что вы хотите, будет в группе 1

resultString = Regex.Match(subjectString, "[-^$#](.*)", RegexOptions.Singleline).Groups[1].Value; 
+0

Этот, похоже, работает, за исключением тех случаев, когда я пробовал его в версии Scarlett O'Hara. Я не получаю никакого результата. Похоже, регулярное выражение нуждается в небольшой настройке (я понятия не имею, что происходит в выражении регулярного выражения) – GenXisT

+0

Просто добавьте то, что вы считаете особенным внутри класса символов, т. Е. Между [и]. Поэтому для Scarlett O'Hara вам нужно добавить одиночную кавычку ', и она станет [-^$ #'] – buckley

+0

Правильно ... Я получил это теперь ... «класс персонажа» находится внутри брекетитов ... поэтому я добавил «там, и он сработал!» Удивительно. Большое вам спасибо! – GenXisT

0

[-'](.*)

Это должно захватить что-нибудь после - и '. Если вы хотите, вы можете добавить больше символов в раздел []. Просто избегайте специальных регулярных выражений.

Смежные вопросы