Соответствие регулярному выражению списка строк кавычек - без кавычек - PullRequest
10 голосов
/ 29 сентября 2008

в Javascript, следующее:

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

дает "быстрый", "коричневая лиса", "перепрыгивает", "ленивая собака"

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

какое регулярное выражение сделает это?

Ответы [ 7 ]

7 голосов
/ 29 сентября 2008

Это похоже на работу:

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.

4 голосов
/ 29 сентября 2008

Это не одно регулярное выражение, а два более простых регулярных выражения.

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] 
1 голос
/ 29 сентября 2008

работает ответ грейпфрукта. Я бы использовал вариант Дэвида

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

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

0 голосов
/ 26 января 2017

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

Поскольку поисковая система впервые привела меня сюда, я действительно хотел бы сориентировать людей, желающих проверить пары кавычек, на более общий вопрос: https://stackoverflow.com/a/41867753/2012407.

Регулярное выражение будет получать полный контент между правильно сформированными парами кавычек, например '"What\'s up?"', например, которых нет в кодовом комментарии, например // Comment. или /* Comment. */.

0 голосов
/ 29 сентября 2008

Это то, что я бы использовал в 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 голосов
/ 29 сентября 2008

Вот один из способов:

var test = '"the quick" "brown fox" "jumps over" "the lazy dog"';
var result = test.replace(/"(.*?)"/g, "$1");
alert(result);
0 голосов
/ 29 сентября 2008

Вы можете использовать метод Javascript replace () , чтобы удалить их.

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...