Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите с регуляркой (https://javascript.ru/forum/misc/9982-pomogite-s-regulyarkojj.html)

Орёл 14.06.2010 14:39

Помогите с регуляркой
 
Нужно из текста вырезать всё что между кавычками делаю так:
text.match('/Тема\:\"(.*)\"/gi');
Но возвращаеться null

exec 14.06.2010 15:00

text.replace(/".+?"/gi, '""');

Орёл 14.06.2010 15:04

Цитата:

Сообщение от exec (Сообщение 59406)
text.replace(/".+?"/gi, '""');

мне не удалить надо,а вытащить

KOLANICH 14.06.2010 15:12

попробуй убрать глобал

exec 14.06.2010 15:16

text.match(/".+?"/gi);


Будет возвращён массив с найденными подстроками.

Орёл 14.06.2010 15:32

спасибо

FINoM 24.02.2012 03:57

Пардон за поднятие мертвой темы, не хотелось создавать новой.

Помогите плиз с регуляркой: нужно разбить строку на слова, делаю так:
' сок   молоко     работа '.replace(/\s+/g, ' ').replace( /\s(.*)\s/, '$1' ).split( ' ' ); //["сок", "молоко", "работа"]

Но если убрать пробел в начале, то получится так:
'сок   молоко     работа '.replace(/\s+/g, ' ').replace( /\s(.*)\s/, '$1' ).split( ' ' ); //["сокмолоко", "работа"]

А если убрать еще и в конце, то будет:
'сок   молоко     работа'.replace(/\s+/g, ' ').replace( /\s(.*)\s/, '$1' ).split( ' ' ); //["сокмолокоработа"]


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

На всякий случай: первый реплейс заменяет кучу пробелов на один, второй — убирает пробелы слева и справа (по крайней мере, мне бы так хотелось).

FINoM 24.02.2012 04:06

Сорри, вспомнил, что в php есть тая функция как trim, она же реализована и на яваскриптах.
http://alt-f4.ru/trim-in-javascript
В итоге:
'   сок    молоко  работа'.replace(/\s+/g, ' ').replace(/((\s*\S+)*)\s*/, "$1").replace(/\s*((\S+\s*)*)/, "$1").split( ' ' ); //["сок", "молоко", "работа"]


Хотя выглядит жутко. Есть варианты упрощения?

UPD:
'сок    молоко  работа '.replace(/\s+/g, ' ').replace(/\s*((\s*\S+)*)\s*/, "$1").split( ' ' )

Aetae 24.02.2012 04:12

alert(
'сок   молоко     работа'.split(/\s+/)
)

Проблема не в регулярках)

FINoM 24.02.2012 04:21

Цитата:

Сообщение от Aetae (Сообщение 159569)
alert(
'сок   молоко     работа'.split(/\s+/)
)

Проблема не в регулярках)

Ну всё равно придется пробелы по бокам убивать. Как это сделать без проверок?
'    сок   молоко     работа  '.split(/\s+/); //["", "сок", "молоко", "работа", ""]


Часовой пояс GMT +3, время: 09:22.