Регулярное выражение для поиска тегов с атрибутами, но в уникальном порядке - PullRequest
1 голос
/ 20 июня 2019

Я пытаюсь найти дату и транзакцию из html и узнать, как получить html с помощью регулярных выражений.Я попробовал простой HTML, мне было труднее реализовать.То, что я пытаюсь сделать, это найти дату с транзакциями и поместить ее в массив, а затем распечатать в хорошем формате.Я пытаюсь получить определенные значения из таблицы из этого HTML.HTML-код даты (div style = "width: 100%; overflow: hidden;") и все переходы (td align = "right").Вот HTML (https://pastebin.com/L8emba2X)

. Я просто возился с множеством различных версий регулярных выражений, и ни одна из них, похоже, не работает из-за одной даты, но 4 других транзакций, которые нужно извлечь за дату.

$text='/<\s*div style="width:100%;overflow:hidden;"[^>]*>(.*?)<\/div[^>]>| 
<td align="right">(.+?)<\/td>/m';

preg_match_all($text, $html, $matches, PREG_SET_ORDER, 0);

print_r($matches);

Я использовал это, и только транзакции вышли. Также idk, как распечатать дату с определенной транзакцией.

1 Ответ

1 голос
/ 20 июня 2019

Я предполагаю, что здесь вам может понадобиться выражение, похожее на:

<\s*div style="width:100%;overflow:hidden;"\s*>([\s\S]*?)<\/div>|<td align="right">(.+?)<\/td>

для захвата любого символа и новых строк, используя ([\s\S]*?).

Ваша попытка просто прекрасна, однако, (.*?) не пройдет новые строки, и они будут:

([\s\S]*?)
([\d\D]*?)
([\w\W]*?)

Демо

Test

$re = '/<\s*div style="width:100%;overflow:hidden;"\s*>([\s\S]*?)<\/div>|<td align="right">(.+?)<\/td>/m';
$str = '<td align="left"><div style="width:100%;overflow:hidden;">
    2019.06.04 09:35
</div></td><td>5176</td><td align="right">0.00</td><td align="right">0.00</td><td align="right">5,000.00</td><td align="right">5,000.00</td><td>орлого</td><td>                 </td>
</tr><tr>
<td align="left"><div style="width:100%;overflow:hidden;">
    2019.06.04 09:35
</div></td><td>5024</td><td align="right">5,000.00</td><td align="right">-50.00</td><td align="right">0.00</td><td align="right">4,950.00</td><td>Ухаалаг мэдээ үйлчилгээний хураамж</td><td>                 </td>
</tr><tr>
<td align="left"><div style="width:100%;overflow:hidden;">
    2019.06.14 11:00
        </tbody>
    </table>
</div>';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);

// Print the entire match result
var_dump($matches);

выход

array(11) {
  [0]=>
  array(2) {
    [0]=>
    string(69) "<div style="width:100%;overflow:hidden;">
    2019.06.04 09:35
</div>"
    [1]=>
    string(22) "
    2019.06.04 09:35
"
  }
  [1]=>
  array(3) {
    [0]=>
    string(27) "<td align="right">0.00</td>"
    [1]=>
    string(0) ""
    [2]=>
    string(4) "0.00"
  }
  [2]=>
  array(3) {
    [0]=>
    string(27) "<td align="right">0.00</td>"
    [1]=>
    string(0) ""
    [2]=>
    string(4) "0.00"
  }
  [3]=>
  array(3) {
    [0]=>
    string(31) "<td align="right">5,000.00</td>"
    [1]=>
    string(0) ""
    [2]=>
    string(8) "5,000.00"
  }
  [4]=>
  array(3) {
    [0]=>
    string(31) "<td align="right">5,000.00</td>"
    [1]=>
    string(0) ""
    [2]=>
    string(8) "5,000.00"
  }
  [5]=>
  array(2) {
    [0]=>
    string(69) "<div style="width:100%;overflow:hidden;">
    2019.06.04 09:35
</div>"
    [1]=>
    string(22) "
    2019.06.04 09:35
"
  }
  [6]=>
  array(3) {
    [0]=>
    string(31) "<td align="right">5,000.00</td>"
    [1]=>
    string(0) ""
    [2]=>
    string(8) "5,000.00"
  }
  [7]=>
  array(3) {
    [0]=>
    string(29) "<td align="right">-50.00</td>"
    [1]=>
    string(0) ""
    [2]=>
    string(6) "-50.00"
  }
  [8]=>
  array(3) {
    [0]=>
    string(27) "<td align="right">0.00</td>"
    [1]=>
    string(0) ""
    [2]=>
    string(4) "0.00"
  }
  [9]=>
  array(3) {
    [0]=>
    string(31) "<td align="right">4,950.00</td>"
    [1]=>
    string(0) ""
    [2]=>
    string(8) "4,950.00"
  }
  [10]=>
  array(2) {
    [0]=>
    string(99) "<div style="width:100%;overflow:hidden;">
    2019.06.14 11:00
        </tbody>
    </table>
</div>"
    [1]=>
    string(52) "
    2019.06.14 11:00
        </tbody>
    </table>
"
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...