Я пытаюсь разобрать документ, в котором разбросаны номера ссылок.
Текстовый текст текст {4: 2} еще невероятный текст {4: 3} намного позже {222: 115} и еще немного текста.
Ссылки всегда будут заключаться в квадратные скобки, и между ними всегда будет двоеточие. Я написал выражение, чтобы найти их.
{[0-9]:[0-9]}
Однако это явно не работает, как только вы сталкиваетесь с двух- или трехзначным числом, и мне трудно понять, что это должно быть. Никогда не может быть больше трех цифр {999: 999} - это максимальный размер, с которым можно работать.
У кого-нибудь есть идея правильного выражения для обработки этого?
regex
тегах.Ответы:
попробуйте добавить плюс (а)
источник
Какой движок регулярных выражений вы используете? Большинство из них поддерживают следующее выражение:
На
\d
самом деле это сокращение для[0-9]
, но важная часть - это добавление,+
которое означает «один или несколько».источник
Попробуй это:
Это
{1,3}
означает «соответствие от 1 до 3 предшествующих символов».источник
Вы можете указать, сколько раз вы хотите, чтобы предыдущий элемент совпадал, используя
{min,max}
.Кроме того, вы можете использовать
\d
для цифр вместо[0-9]
большинства разновидностей регулярных выражений:Вы также можете рассмотреть возможность экранирования внешнего
{
и}
, просто чтобы прояснить, что они не являются частью определения повторения.источник
{\ d *: \ d *} должен работать.
* означает соответствие 0 или более предшествующих вхождений, то есть цифру.
источник