2016-06-24 4 views
-1

У меня длинная строка со случайными буквами, числами и пробелами.Regex - извлечь остальную строку после определенной последовательности

Мне нужно выражение регулярного выражения, чтобы вытащить часть строки после последовательности символов и цифр ->AQ102.

Например:

string t = "kjdsjsk158dfdd 125.196.168.210helloAQ102Lab101 section2"; 

желаемый результат:

Lab101 section2

+0

Пытались выражение (\ W +) $, но он не работает с пробелами. – LK22

ответ

2

Почему бы не использовать

string s = t.Split("AQ102").Last(); 
0

Не нужно Regex для этого. Простое разделение должно хватить:

string output = input.Split(new string[] { "AQ102" }, StringSplitOptions.None)[1]; 

Зависит от того, насколько вы уверены в вашем входе, вы можете проверить, что AQ102 есть первый, или даже подсчитать, сколько раз ... но как я уже говорил, зависите от ваш сценарий.

+0

Благодарим за помощь. В строке всегда будет AQ102, но до и после этой последовательности всегда будет изменяться. Я новичок в кодировании и все еще выясняю свой путь. Еще раз спасибо. – LK22

+0

Также есть ошибка, говорящая «Невозможно преобразовать из« string »в« char »с этим решением. – LK22

+0

@ LK22: Извините, моя ошибка, я исправил проблему в ответе – musefan

0

Или регулярное выражение, как первоначально просили:

Regex regEx = new Regex(@".*(AQ102.*)");

ИЛИ

Regex regEx = new Regex(@".*(AQ102)(.*)");

И вы можете получить спички, выполнив следующие действия:

Matches matches = regEx.Matches(t);

И вы можете получить матч с помощью ссылки на первый индекс:

matches[1]

или, если вы действительно уверены:

string val = regEx.Matches(t)[1].Value;

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