|
|
|
| Необходимо написать регулярное выражение для выборки целых чисел из строки $text =
4
lala-blabla ! =))
:(
457 -1.000001
32
98
2 +3.14 12637 9812 89123789
1
O O1 01
1O
1OO
zero!
df1000 ggg...
-5
105
-2006
wassauupp!!
|
У меня получилось примерно следующее:
$numarray = preg_match_all('/[+-]?\d+(?=\s)/',$text,$array);
|
Данное выражение находит совпадения :
[0] => 4
[1] => 457
[2] => 000001 // Числа после десятичной точки от (-1.000001)
[3] => 32
[4] => 98
[5] => 2
[6] => 14 // Число после десятичной точки от (+3.14)
[7] => 12637
[8] => 9812
[9] => 89123789
[10] => 1
[11] => 1
[12] => 01
[13] => 1000
[14] => -5
[15] => 105
[16] => -2006
|
Помогите избавиться от чисел [6] и [2] | |
|
|
|
|
|
|
|
для: mgl
(17.11.2009 в 11:52)
| | А вы получите все полноценные цифры при помощи
'/[+-]?[\d\.]+(?=\s)/'
И отсейте все не целые числа пройдя по результатам циклом и проверив каждое из число при помощи функции is_int(). | |
|
|
|
|
автор: .... (17.11.2009 в 16:45) |
|
|
для: mgl
(17.11.2009 в 11:52)
| | что-то такое
'/[+-]?(?<![\.,])\b\d+(?=\s)/'
Вместо (?=\s) можно тоже поставить \b - конец cлова и (?![\.,]) нет последующеё точки или запятой. Ато может быть число в самом конце текста | |
|
|
|
|
|
|
|
для: ....
(17.11.2009 в 16:45)
| | Спасибо ...., всё отлично получилось! | |
|
|
|
|
автор: duv (17.11.2009 в 17:22) |
|
|
для: mgl
(17.11.2009 в 11:52)
| |
$numarray = '/((?<!.)|(?<=\s))[+-]?[0-9]+(?=\s)/';
|
| |
|
|
|