Как использовать регулярные выражения для сопоставления чисел в указанной строке - PullRequest
0 голосов
/ 28 июня 2018

Для строки: Tm_leo_5776045435d31dc2fcb78afd31c2cdb0=1530134325; User=687685&CouponCode=329472&whoami=109777

Я хочу извлечь поле whoami из вышеуказанных текстов, но мне нужна только часть с цифрами. Прямо сейчас я использую <?(whoami=)\d{6,8}, но это извлечет строку whoami=109777, и я хочу избавиться от строки whoami=.

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

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

(?<=whoami=)[0-9]+

См. Демоверсию regex . Или вам может потребоваться, чтобы & или ? появился прямо перед whoami и использовал

(?<=[&?]whoami=)[0-9]+
    ^^^^

См. еще одну демонстрацию регулярных выражений .

(?<=[&?]whoami=), положительный вид сзади, проверяет, есть ли подстрока whoami= с & или ? впереди непосредственно слева от текущего местоположения, а [0-9]+ соответствует и использует одну или несколько цифр и возвращает только этот текст.

0 голосов
/ 28 июня 2018

Вы хотите обернуть совпадающие цифры в группе и прочитать эту группу из результата совпадения.

<?whoami=(\d{6,8})

Вам понадобится группа 1 из полученного совпадения.

Группа 0 будет соответствовать целиком, группа 1 будет соответствовать номеру.

...