Я привязываюсь к поиску с начала строки, но я не могу понять, как это сделать.
Если строка была >plaplapla>plaplapla(321)
, я хочу получить текст с регулярным выражением />.+?\(\d.\)/
начиная с последнего вхождения первого символа char >
.
Например, если текст был >fir5t W0rd$ > $ec0nd here(2) >third here()
, текст, который я хочу извлечь, это > $ec0nd here(2)
.
Я пытался использовать />.+?\(\d.\)/
но он дает мне >fir5t W0rd$ > $ec0nd here(2)
вместо > $ec0nd here(2)
.
Как изменить регистр, чтобы он начинался с последней позиции появления символа '>'?
Поскольку ваша строка, кажется, >
разделители используйте [^>]
отрицается класс символа вместо .*?
ленивый шаблон:
/>[^>]+\(\d+\)/
См. Демо-версию regex. Обратите внимание, что />[^>]+?\(\d+\)/
будет работать аналогично, но будет соответствовать первой (<DIGITS>)
подстроке после >
. См. Это регулярное выражение и другое выше.
подробности
>
- буквальный >
[^>]+
- 1 или более символов, кроме >
как можно больше\(
- буквальный (
\d+
- одна или несколько цифр\)
- a )
.Попробуй это:
/>[^>]+?\(\d\)/
Таким образом, ваше регулярное выражение не будет захватывать символ >
поэтому вы получите второй экземпляр.
<
.*?
(хотя и ленивый) совпадает с первым(
, цифры,)
. Таким образом, он может совпадать по<
символам.