2016-06-23 2 views
1

Мы знаем, что JavaScript не поддерживает look-backs. Я пытался совместить CC C часть строки. Тем не менее, он соответствует C CC C.Соответствие этой строки без искажений - Javascript Regex

Регулярное выражение должно соответствовать только CC или C.

Строка KD IC CC C

Текущий Regex: (\s*((CC)|(C)))+

С видом фоновым могло быть: (\s*((CC)|((?>=\s|^)C)))+

Что является альтернативой здесь? Я пробовал не захватывать группы и т. Д., Но не работал.

Поскольку функция с этим регулярным выражением используется много раз, у меня нет возможности использовать другие функции JavaScript. Единственный способ добиться этого - использовать регулярное выражение.

Я также использую https://www.npmjs.com/package/xregexp от NodeJS. Поэтому я мог бы использовать его дополнительные функции. Любая помощь приветствуется.

+1

'(?> ...)' - это атомная группа, не выглядящая сзади. – anubhava

+0

http://www.regular-expressions.info/lookaround.html «Конструкция для положительного lookbehind (? <= Text): пара круглых скобок с открывающей скобкой, за которой следует знак вопроса, символ« меньше » , и знак равенства. Отрицательный lookbehind написан как (?

+1

Я бы сказал '/ \ bCC? \ B /'. – leaf

ответ

0

Вы можете использовать границу слова в этом случае, чтобы достичь соответствия, которое вы ищете.

var str = 'KD IC CC C'; 
 
var found = str.match(/\bcc?\b/gi); // or you can use this: /\bc{1,2}\b/gi 
 

 
console.log(found);

Похоже @procrastinator упоминается тот же регулярное выражение в комментариях тоже.

+0

\ b работал отлично. Благодаря! –

Смежные вопросы