2013-03-31 2 views
0

я пытаюсь вытащить некоторую информацию здесь мое регулярное выражениерегулярное выражение не найти спичку

<tr> 
<td>([^<]+)<i><a href="([^<]+)" title="([^<]+)">([^<]+)<\/a><\/i><sup id="([^<]+)" class="([^<]+)"><a href="([^<]+)"><span>[<\/span>1<span>]<\/span><\/a><\/sup><\/td> 
<td><a href="([^<]+)" title="([^<]+)">([^<]+)<\/a><\/td> 
<td><a href="([^<]+)" title="([^<]+)">([^<]+)<\/a><\/td> 
<td>([^<]+)<\/td> 
<td>([^<]+)<\/td> 
</tr> 

здесь образец HTML

<tr> 
<td><i><a href="/wiki/3Xtreme" title="3Xtreme">3Xtreme</a></i><sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span>[</span>18<span>]</span></a></sup></td> 
<td><a href="/wiki/989_Studios" title="989 Studios">989 Studios</a></td> 
<td><a href="/wiki/989_Studios" title="989 Studios">989 Studios</a></td> 
<td>1999-03-31<sup>NA</sup></td> 
<td>NA</td> 
</tr> 

В настоящее время я просто хочу, чтобы получить данные, чтобы найти спички .. Вы можете понять, почему это не соответствует этому?

для всех ненавистников .... Я не забочусь о ваших вариантах, если я должен использовать регулярное выражение на html или нет .. Для этого случая он будет работать отлично. У меня есть одна страница, мне нужны данные в таблице. Как только я получу данные, я сохраню его в своем db и никогда не буду снова использовать регулярное выражение. Soooo, если ваш комментарий или ответ о вашей опции при использовании regex с html .. dont post.

+0

Вашего первому код должен быть регулярным выражением? По крайней мере, нужно было бы ускользнуть. –

+0

Может быть, ваш двигатель регулярных выражений путается с новыми линиями? – thejh

+3

Остановить разбор HTML с регулярными выражениями [пока не стало слишком поздно] (http://stackoverflow.com/q/1732348/1258041). –

ответ

1

... Вторая строка:

<td>([^<]+)<i> 

не может надеяться на матч:

<td><i> 

, как вы выразились, эквивалентный '+' на '{1}' в то время как нет ничего между вашим теги. Не проверял остальное ваше регулярное выражение, но в любом случае он не может работать.

Edit:
Просьба также исправить "([^<]+)" и так далее (я надеюсь, вы понимаете, почему) ... И изменить регулярное выражение, когда вы это исправить.

Edit 2:
Видя, как это довольно катастрофа (извините, но это правда: /): пожалуйста, рассмотреть вопрос о замене всех ([^ <] +) вещей, которые не будут работать на все случаи простой (.*?)

Edit 3:
[и] должны быть экранированы. (\ D поможет вам поймать номера)

+0

ahh этого не видел, но все равно совпадения не найдено .. –

+0

Смотрите мои правки. И также может быть многострочная проблема. – Loamhoof

+0

безупречный! но в этом нет необходимости, но в чем разница (. *?) и ([^ <] +) –

1
<span>[<\/span>1<span>]<\/span> 

Много проблем здесь: вы должны экранировать скобки и, очевидно, 1 не будет соответствовать 18

Смежные вопросы