-4

У меня есть следующий текст:

676 ##$a610$v22
<coded_13></coded_13>
700 #1$3184149134rtrtrtrtrtrtrtrt$4210
<coded_27></coded_27>
ILeclerc, Michel (1952-....)
<coded_27></coded_27>
N$4070
<coded_13></coded_13>
712 02$3026404796
<coded_27></coded_27>
I@Université Joseph Fourier (Grenoble)
<coded_27></coded_27>
N$4295

Я хочу сопоставить только первое вхождение второго шаблона, который равен $4 а затем 3 цифрам (пример: $4210). Например, я хочу регулярное выражение, которое может соответствовать строке ниже:

700 #1$3184149134rtrtrtrtrtrtrtrt$4210

где:

  • 700 - шаблон регулярного выражения "начинается в"
  • $4 за которыми следуют 3 цифры, - это шаблон регулярных выражений "конец в" (второй)

1 ответ1

0

Вход для тестирования:

676 ##$a610$v22
<coded_13></coded_13>
700 #1$3184149134rtrtrtrtrtrtrtrt$4210
<coded_27></coded_27>
ILeclerc, Michel (1952-....)
<coded_27></coded_27>
N$4070
<coded_13></coded_13>
712 02$3026404796
<coded_27></coded_27>
I@Université Joseph Fourier (Grenoble)
<coded_27></coded_27>
N$4295

Регулярное выражение:

700.*?\$4\d{3}

Результат:

676 ##$a610$v22
<coded_13></coded_13>
700 #1$3184149134rtrtrtrtrtrtrtrt$4210
<coded_27></coded_27>
ILeclerc, Michel (1952-....)
<coded_27></coded_27>
N$4070
<coded_13></coded_13>
712 02$3026404796
<coded_27></coded_27>
I@Université Joseph Fourier (Grenoble)
<coded_27></coded_27>
N$4295

Объяснение:

  • .* Соответствует любому символу кроме символа новой строки 0 или более раз. Это может быть что-то между 700 и 4201 $
  • ? Сделайте соответствие "не жадным", чтобы соответствовать первым 4 $, сопровождаемым 3 цифрами.
  • \$ Перед символом $ должен стоять обратный слеш, чтобы его можно было интерпретировать как литеральный символ в регулярном выражении.
  • 4\d{3} 4 символа, за которыми следуют любые 3 цифры.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .