Вишня выбирает номера из абзаца, только если в этой строке есть определенное слово - PullRequest
0 голосов
/ 04 февраля 2011

Из следующей прозы я хочу извлечь список чисел из любой строки, содержащей буквы «HTML». HTML может быть в верхнем или нижнем регистре.

Итак, вот код псевдо: text = getline () если текст содержит HTML сопоставлять любые числа из текста возвращаемый массив совпадений

Есть идеи, как это сделать в REG Ex?

===============

HTML email is still … a great marketing tool if used properly. The key is to test, test,
 test to see if your subscribers prefer 5 it over text based email. If you are unsure your
 subscribers can read HTML email, then offer both text-based email and HTML 7 email, to 
cater to both audiences.

In my Part $254,000 of this article, I will discuss “How to create and send an HTML email 
form” to increase the interactivity of your subscribers and boost the response rate in your
 email marketing campaigns. retro 50's 

=============

Ответы [ 3 ]

1 голос
/ 04 февраля 2011

Сначала проверьте, есть ли в строке html, затем сопоставьте все цифры:

if (preg_match("/html/i", $input)) {
    preg_match_all("/\b(\d+)\b/", $input, $m);
}
print_r($m);
0 голосов
/ 04 февраля 2011
^((\d+)|.)*(HTML|html)((\d+)|.)*$

Правильно настроить группы захвата может быть немного сложно, но просто немного возиться.

0 голосов
/ 04 февраля 2011

Пример решения:

$line=strtolower($line);
$x = preg_match("/html.*(\d+)/",$line,$match) || preg_match("/(\d+).*html/",$line,$match);
if($x)echo "number in line: ".$match[1];

Предполагается только один номер в строке. Определенно, это не лучший способ сделать это, но вы действительно должны изучить регулярные выражения самостоятельно - это не так сложно.

См. Также http://www.regular -expressions.info /

...