Проблема с регулярным выражением - получение того, что находится внутри первого пролета - PullRequest
0 голосов
/ 22 августа 2010

У меня есть некоторые проблемы с регулярным выражением и PHP здесь:

   <span style="color: blue">word1</span> word by word by word <span style="color: red">word</span>

Я пытаюсь вывести word1. Является ли регулярное выражение лучшим способом? Необходимо обработать около 70 таких событий.

UPDATE

$one = '<span style="color: blue">word1</span> word by word by word <span style="color: red">word</span>';
preg_match('/<span[^>]*>(.*?)<\/span>/',$one);
echo $one;

Не работает, выводит тоже самое. Я что-то не так делаю?

Спасибо

Ответы [ 2 ]

3 голосов
/ 22 августа 2010

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

 <span[^>]*>(.*?)<\/span>

Смотрите это в действии: http://rubular.com/r/ateGVj5PCu


ВНИМАНИЕ: Regex не подходит для анализа HTML . Если ваш код более сложный, чем этот, я настоятельно рекомендую использовать (X) HTML-парсер

0 голосов
/ 22 августа 2010
var str = '<span style="color: blue">word1</span> word by word by word <span style="color: red">word</span>
';

var myArray = str.match(/<span[^>]+>(\w+)<\/span>/);

Возврат myArray [1] = "word1";

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...