Как сопоставить диапазон строки, которая не содержит определенного слова, используя только регулярное выражение?

Не уверен, что это все еще актуально, но такое же поведение имеет место и для словарей. Посмотрите на этот пример.

a = {'par' : [1,21,3], 'sar' : [5,6,8]}
b = a
c = a.copy()
a['har'] = [1,2,3]

a
Out[14]: {'har': [1, 2, 3], 'par': [1, 21, 3], 'sar': [5, 6, 8]}

b
Out[15]: {'har': [1, 2, 3], 'par': [1, 21, 3], 'sar': [5, 6, 8]}

c
Out[16]: {'par': [1, 21, 3], 'sar': [5, 6, 8]}
0
задан Jack Bashford 24 March 2019 в 03:28
поделиться

1 ответ

Это, кажется, работает:

var regex = /\[(?!dog)([a-z]+) (?!dog)([a-z]+)\]/gi;
var string = "[cat dog] [dog cow] [cow cat] [cat tiger] [tiger lion] [monkey dog]";
console.log(string.match(regex));

Вышеупомянутое регулярное выражение соответствует только двум животным в каждой паре скобок - этот соответствует одному или нескольким:

var regex = /\[((?!dog)([a-z]+) ?){2,}\]/gi;
var string = "[cat dog] [dog cow] [cow cat] [cat tiger] [tiger lion] [monkey dog] [one animal two animal three animal]";
console.log(string.match(regex));

0
ответ дан Jack Bashford 24 March 2019 в 03:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: