Coder2795 Ответов: 2

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


Как найти строку с регулярным выражением в приведенном ниже примере, которая начинается с 'dd300' и заканчивается запятой (результат включает запятую)?


Пример строки:
dd301/122/4454,dd300/122/300,NR45,

ожидаемый результат:
dd300/122/300,

Что я уже пробовал:

Можно получить следующее, чтобы соответствовать dd300, но нужно знать, как включить косую черту вперед и остановиться на запятой.

(?<!\w)dd300

Patrice T

Почему это проблема, чтобы соответствовать '/' ?

2 Ответов

Рейтинг:
15

Jochen Arndt

Специальные символы, такие как косая черта, должны быть экранированы обратной косой чертой.

Чтобы соответствовать до тех пор, пока не появится определенный символ, используйте .* или .+ за ним следует этот персонаж. Потому что это так жадный (этот термин должен обрабатываться каждым регулярным выражением tuturioal), добавьте a ?.

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

(dd300\/.+?,)
Скобки необходимы только тогда, когда вам нужно получить доступ к соответствующей строке.

В зависимости от ваших входных данных вы также можете использовать более конкретное регулярное выражение. Если, например, dd300 всегда следует два числа разделенных косой чертой это может быть
(dd300\/\d+\/\d+,)
где \d указывает любую цифру, которая совпадает с использованием [0-9].


Рейтинг:
12

OriginalGriff

Самым основным было бы именно это:

dd300.*?,
То есть "dd300"; за ним следует любой символ, любое количество повторений, как можно меньше; затем запятая".

Если вы собираетесь работать с регулярными выражениями, то получите копию Экспрессо[^] - это бесплатно, и он проверяет и генерирует регулярные выражения.