2013-11-15 3 views
1

Я хотел бы сопоставить все цифры, которые находятся перед символом K, и извлечь это значение.Как сопоставить любые цифры перед определенным символом?

В примере CARRY18K он будет соответствовать 18.

Возможно, я могу добиться этого только с помощью регулярных выражений, но как? \d+K Правильное выражение здесь?

+2

Вы можете использовать: '(\ d +) k' – Qtax

ответ

2

I'd like to match all digits that are in front of the character K and extract that value.

Вы должны использовать:

\d+(?=K) 

(?=K) положительно опережение, что гарантирует, что цифры следуют K

+0

ли опережения лучше, чем просто' \ д + k'? Если да, то почему? – Cruncher

+0

@Cruncher: Хороший вопрос. Ответ заключается в том, что OP хочет извлечь цифры, а lookahead сохраняет дополнительные шаги группировки чисел и захвата «$ 1» из него. – anubhava

2

Я хотел бы использовать что-то вроде этого:

\d+K 

Если вы хотите, чтобы захватить цифры:

(\d+)K 
Смежные вопросы