2017-07-25 10 views
-3

私は値を抽出する必要があるいくつかのhtmlテーブルを得て、私が望む値を得るために正規表現を行いました。Regexが結果を期待していません

HTMLの表は、これらの2つの形式で指定できます

<td height="20" style="width:59px;height:20px;">1</td> 
      <td style="width:212px;">Mendes, Paulo [AA]</td> 
      <td style="width:99px;">39</td> 
      <td>8</td> 
      <td style="width:85px;">$10,000</td> 
     </tr><tr height="20"><td height="20" style="width:59px;height:20px;">2</td> 
      <td style="width:212px;">Campos, Miguel [AC]</td> 
      <td style="width:99px;">37</td> 
      <td>6</td> 
      <td style="width:85px;">$5,000</td> 

そして、私はこの正規表現に必要な値を得ることができますスタイルのない例に他の1

<td>1</td> 
      <td>Mendes, Paulo [AA]</td> 
      <td>39</td> 
      <td>8</td> 
      <td>$10,000</td> 
     </tr><tr height="20"><td>2</td> 
      <td>Campos, Miguel [AC]</td> 
      <td>37</td> 
      <td>6</td> 
      <td>$5,000</td> 

<td>(\d+)<\/td>\n+\t*<td>([\w+, ]+) \[(\w{2})\]<\/td> 

phpで使用されており、私はhttps://regex101.com/を使って正規表現を最初にテストしています。

今、スタイルのテーブルの値を取得するために私は幸運を得ていません。

はで「完全に一致する」を試してみました:

<td height\=\"20\" style\=\"width\:59px\;height\:20px\;\">(\d+)<\/td>\n+\t*<td style\=\"width\:212px\;\">([\w+, ]+) \[(\w{2})\]<\/td> 

が、それは私が望んたくキャッチしていません。否定検索をしようとしましたが、まだ動作しません。私は間違っているの?

+0

関連:https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags –

+0

ああ.. msgstr "HTMLは正規表現では解析できないためです。" –

答えて

0

は、なぜあなたはQuerySelectorAll( '')を使用していません。それはずっと簡単です。 td要素の内部テキストを取得し、ループを使用して配列に格納することができます。あなたはTDを持っていたら、あなたが欲しいしかし、処理するための.phpファイルにそれを送信するためのjQueryのAjaxを使用することができます。例えば

var tdArr = []; 

var tdContent = document.querySelectorAll('table tr td'); 

for (let i = 0; i < tdContent.length; i++){ 
    tdArr.push(tdContent[i].textContent); 
} 
+0

はそれを知りませんでした。それについて調べてみましょう。ありがとうございました –

+0

問題はありません、私はそれが役立つことを願っています – smuhero

関連する問題