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