Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Регулярное выражение вида /a?.*/ (http://www.flasher.ru/forum/showthread.php?t=89961)

miramax 27.12.2006 20:04

Регулярное выражение вида /.?.*/
 
Хочу найти в строке все числа, положительные и отрицательные. Например:
-100 250 тра-ла-ла 25-64 .
Надо найти массив -100, 250, 25, -64
Т.е число - это последовательность цифр, перед которой может стоят знак "-"
Цитата:

var pat:RegExp = /-?\d*/g
trace(String(' 22as. -5 ').match(pat)) //скрипт виснет
Цитата:

var pat:RegExp = /(\-)?\d*/g
trace(String(' 22as. -5 ').match(pat)) //скрипт виснет
Такая же картина при поиске юникодного и ANSI кода символа "-".
Да и вообще, любого знака.
Т.е. конструкция
/a?/g
, где а - любой символ, "вешает" плеер.

MerlinTwi 27.12.2006 22:29

Код:

var pat:RegExp = /\-?\d+/g;
trace(String(' 22as. -5 ').match(pat)) //скрипт работает


miramax 27.12.2006 23:11

Цитата:

Сообщение от MerlinTwi
Код:

var pat:RegExp = /\-?\d+/g;
trace(String(' 22as. -5 ').match(pat)) //скрипт работает


Спасибо, понял свою ошибку. Мой скрипт искал бы и отдельные символы "-" в строке. В моих данных только только числа и пробелы между ними, упустил это момент.

Конечно в выражении /-?\d*/ - возможен случай пустой строки, наверное поэтому плеер виснет в бесконечном цикле, хотя мне кажется это неправильным. Для такого случая придётся писать более сложные условия со скобками, что бы исключит случаи пустой строки.


Часовой пояс GMT +4, время: 17:24.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.