php preg_match возвращает только совпадающую часть строки, когда я уверен, что есть и несопоставленная часть - PullRequest
0 голосов
/ 31 января 2011

, поэтому я пытаюсь получить весь непревзойденный текст, и у меня есть фрагменты кода, которые выглядят так: Ряд, Кол = (1, 1) Ряд, Кол = (1, 2) Row, Col = (9999999, 9999999) хранящийся в массиве $ foo, мой оператор preg_match выглядит так:

foreach($foo as $fooPartition){
   if(preg_match("/.*\([0-9]+\, /", $fooPartition, $match)){
      $unecessaryFluff = $match[0];
      $infoINeed = $match[1];
   }
}

Я продолжаю возвращать $ uneededFluff, но получаю недостающий индекс, когда пытаюсь получить доступ к $ match [1], и мой отладчик проверяет, что $ match на самом деле является просто массивом длины 1, содержащим соответствующую часть строки и $ match [1] DNE.

Кто-нибудь знает, Что я делаю неправильно, из-за чего preg_match не возвращает непревзойденную часть строки в соответствии со спецификациями php-страницы? (используя php 5.3.2)

1 Ответ

0 голосов
/ 31 января 2011

Вам нужно указать сгруппированные выражения (с помощью скобок), если вы хотите изолировать определенные строки.

Например, скажем, вы просто хотели получить цифры

/.*\(([0-9]+)\, /

Не знаете, почему вы 'вы можете избежать запятой, это опечатка?

...