2012-05-05 3 views
0

Кажется, я не могу заставить это работать. Я пытаюсь сопоставить текст «job XXXXXXX», где X является целым числом.Регулярное выражение Соответствие для строки «job XXXXXXX»

Не может быть, чтобы взломать его. Я знаю его просто, но Regex - это не мое дело.

Вот что я работаю. Любая помощь будет оценена по достоинству.

^[job\s]([0-9]{7}$) 

Шейн старт

+1

можно ли просто снять «задание» и использовать остаток? – hexparrot

ответ

2
^job\s+\d+$ 

^матч строки

работа - err..job

\ S + один или несколько пробелов

\ D + один или несколько номеров

$ конец строки

Если вам нужен номер, вы можете использовать

^job\s+(\d+)$ 

The вокруг скобки \ d + будет поставить номер в группу, которую вы можете ссылаться после матча.

Edit: Так как вы отредактировали оригинальный пост, позвольте мне сказать вам, почему отредактированный регулярное выражение не работает:

^[job\s]([0-9]{7}$) 

код [] в регулярном выражении создает набор символов. Это означает, что регулярное выражение пытается сопоставить букву j или письмо o или письмо b или пробельный символ, а затем число.

Edit 2:

Чтобы соответствовать строке, как:

string x = @"Please refer to job 1000000 for more information"; 

Вам нужно немного другое регулярное выражение. Вы не хотите использовать^для соответствия началу строки или $, чтобы соответствовать концу, потому что, очевидно, это не соответствует всей строке.

Вместо этого вы будете хотеть сделать что-то вроде этого:

Console.WriteLine(Regex.Replace(x,@"job\s+(\d+)","REDACTED!!")); 

Если вы хотите сослаться на номер в вашем заменить вы можете сделать что-то вроде этого:

Console.WriteLine(Regex.Replace(x, @"job\s+(\d+)", "Super Awesome Job: $1")); 
+0

+1 для предоставления решения, объясняя, почему это правильно, и объясняет, почему оригинал ошибочен. – unholysampler

+0

Хорошо, я начинаю понимать это. –

+0

Моя следующая проблема Я не уверен, что проблема с регулярным выражением. Я использую .NET RegEx.Replace (ввод, шаблон, замена) и должен заменить нужную часть в строке типа «Пожалуйста, обратитесь к заданию 1000000 за дополнительной информацией» –

0

Регулярное выражение для это будет ^JOB \ s \ d {5} $ где 5 - количество цифр в целых числах. incase count не фиксирован, то ^JOB \ s \ d + $

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