Regexp, соответствующий списка строк кавычек - закрыл кавычки

Если вы хотите повернуть время назад на некоторое количество дней для каждых start и end ваших данных, вам нужно перебрать times ключевые элементы вашего dict, а не только все элементы вашего dict.

import time

print('before:')
print(*data[0]['times'], sep='\n')
print(*data[1]['times'], sep='\n')

day_start = 28
for i in data:
    for pair in i['times']:
        pair['start'] = int((time.time() - day_start*60*60*24) * 1000)
        pair['end'] = int((time.time() - day_start-1*60*60*24) * 1000)
        day_start -= 2

print('\nafter:')
print(*data[0]['times'], sep='\n')
print(*data[1]['times'], sep='\n')

Выход

before:
{'end': 1543791600000, 'start': 1543683600000}
{'end': 1543899600000, 'start': 1543827600000}
{'end': 1543683600000, 'start': 1543647600000}
{'end': 1543755600000, 'start': 1543719600000}

after:
{'end': 1547892092406, 'start': 1545559320406}
{'end': 1547892094406, 'start': 1545732120406}
{'end': 1547892096406, 'start': 1545904920406}
{'end': 1547892098406, 'start': 1546077720406}
10
задан Scott Evernden 29 September 2008 в 06:08
поделиться

6 ответов

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

var test = '"the quick" "brown fox" "jumps over" "the lazy dog"';
var result = test.match(/[^"]+(?=(" ")|"$)/g);
alert(result);

Примечание: Это не соответствует пустым элементам (т.е."".). Кроме того, это не будет работать в браузерах, которые не поддерживают JavaScript 1.5 (предвидения являются 1,5 функциями).

См. http://www.javascriptkit.com/javatutors/redev2.shtml для большего количества информации.

7
ответ дан 4 December 2019 в 01:03
поделиться

Это не один regexp, но два более простых regexps.

var test = '"the quick" "brown fox" "jumps over" "the lazy dog"';

var result = test.match(/".*?"/g);
// ["the quick","brown fox","jumps over","the lazy dog"]

result.map(function(el) { return el.replace(/^"|"$/g, ""); });
// [the quick,brown fox,jumps over,the lazy dog] 
4
ответ дан 4 December 2019 в 01:03
поделиться

ответ grapefrukt работает также. Я был бы с помощью изменения David

match(/[^"]+(?=("\s*")|"$)/g)

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

1
ответ дан 4 December 2019 в 01:03
поделиться

Можно использовать замену JavaScript () метод для разделения их.

var test = '"the quick" "brown fox" "jumps over" "the lazy dog"';

var result = test.replace(/"/, '');

Существует ли больше к нему, чем просто избавление от двойных кавычек?

0
ответ дан 4 December 2019 в 01:03
поделиться

Это - то, что я использовал бы в actionscript3:

var test:String = '"the quick" "brown fox" "jumps over" "the lazy dog"';
var result:Array = test.match(/(?<=^"| ").*?(?=" |"$)/g);
for each(var str:String in result){
    trace(str);
}
0
ответ дан 4 December 2019 в 01:03
поделиться

Вот один путь:

var test = '"the quick" "brown fox" "jumps over" "the lazy dog"';
var result = test.replace(/"(.*?)"/g, "$1");
alert(result);
-1
ответ дан 4 December 2019 в 01:03
поделиться
Другие вопросы по тегам:

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