PHP preg match - регулярное выражение со значением с плавающей запятой - PullRequest
1 голос
/ 27 апреля 2011

есть эта строка:

$var = "30.5x120.8 (test desc here)";

Мне нужно вывести 30,5 и 120,8 с регулярным выражением .. любая помощь ??Thx

Ответы [ 4 ]

14 голосов
/ 27 апреля 2011
preg_match_all('~\d+(?:\.\d+)?~', $string, $matches);
var_dump($matches[0]);
8 голосов
/ 27 апреля 2011
$var = "30x120 (test desc here)";

preg_match_all('/^(\d+)x(\d+)/', $var, $matches);

var_dump($matches)

Ideone .

выход

array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(6) "30x120"
  }
  [1]=>
  array(1) {
    [0]=>
    string(2) "30"
  }
  [2]=>
  array(1) {
    [0]=>
    string(3) "120"
  }
}

Обновление

также работает для 17,5x17,5?

Вот тот, который будет ...

/^(\d+(?:\.\d+)?)x(\d+(?:\.\d+)?)/

Ideone .

2 голосов
/ 27 апреля 2011
preg_match('/^(\d+)x(\d+)/', '30x120 (test desc here)', $result);

и используйте $result[1] и $result[2]

1 голос
/ 27 апреля 2011

Следующие действия должны помочь: /^(\d+)x(\d+)/

Рабочий код

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