2017-02-08 7 views
2

Я пытаюсь использовать регулярное выражение, чтобы соответствовать аа переменной длины цифр после открывающей скобки «(» характер.регулярное выражение соответствует номеру после (

Я попытался

\(\d+ 

Но что регулярное выражение включает в себя кронштейн . в матче Как исключить его

Я использую возвышенный текст регулярных выражений, чтобы сделать матч

+0

Это JavaScript? –

+0

возвышенная система построения текста regex – ScottF

ответ

4

Вы можете использовать positive lookbehind:

(?<=\()\d+ 

Существует одно ограничение здесь: вы можете иметь только образец известной ширины в 'назад. Вы можете использовать (?<=\(|\s{5})\d+, но вы не можете использовать (?<=\d:\s*)\d+.

enter image description here

Вы можете использовать \K «сброса матч» оператору работать вокруг предела длины в 'назад, так \K просто «обрезает» матч на том месте, где он используется, весь текст, совпадающий с шаблоном для слева от него опущен:

\(\K\d+ 

[enter image description here]

Обратите внимание, что \K это на самом деле не эквивалентны, так как просмотра назад текст будет fore это потребляется в то время как lookbehinds не потребляют текст.

+0

Работа с RegEx в течение многих лет, и это первый раз, когда я вижу, что оператор '\ K'. Благодаря! –

+0

@HubertGrzeskowiak: Это полезный оператор из Perl, доступный в библиотеках регулярных выражений PCRE, Boost и Onigmo. –

1

Вы можете использовать захват группы:.

/\((\d+)/ 

Неэкранированные скобки представляют собой группу соответствия регулярных выражений, которую вы можете извлечь из каждого совпадения. Если у вас есть система поиска, система $1 часто используется для доступа к группам.