Regex, чтобы получить URL, содержащий ключевое слово - PullRequest
1 голос
/ 04 мая 2011

Из-за отсутствия API на redbubble.com я использую канал ATOM для кражи информации о фотографиях пользователя.

Вот как выглядит XML:

<entry>
  <id>ID</id>
  <published>Date Published</published>
  <updated>Date Updated</updated>
  <link type="text/html" rel="alternate" href="http://www.redbubble.com/link/to/post"/>
  <title>Title</title>
  <content type="html">
    Blah blah blah stuff about the image..
    &lt;a href="http://www.redbubble.com/products/configure/config-id"&gt;&lt;img src="http://ih1.redbubble.net/path-to-image" alt="" /&gt;
  </content>
  <author>
  <name>Author Name</name>
  <uri>http://www.redbubble.com/people/author-user-name</uri>
  </author>
  <link type="image/jpeg" rel="enclosure" href="http://ih0.redbubble.net/path-to-the-original-image"/>
  <category term="1"/>
  <category term="2"/>
</entry>

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

Одна вещь, которую мы знаем наверняка, это то, что она всегда будет настраиваться в пути, т.е. http://somesite.com/**configure**/id

Так что в основном мне просто нужно найти URL с настройкой и захватить все это ...

Ответы [ 4 ]

2 голосов
/ 04 мая 2011

Следующее регулярное выражение извлечет href-контент в соответствии с вашими требованиями.Это похоже на пример кода.

href="(\w[^"]+/configure/\w[^"]+)
1 голос
/ 04 мая 2011

Спасибо за ваши потрясающие ответы, но мой коллега решил это за меня!

Вот что я в итоге использовал:

/http:\/\/([^"\/]*\/)*configure\/([^"]*)/

(кстати, Ruby regex)

1 голос
/ 04 мая 2011

Если вам нужно использовать регулярные выражения, попробуйте следующее:

href="(?=[^"]*configure)([^"]*)

rubular.com

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

1 голос
/ 04 мая 2011

Какой бы язык программирования вы не использовали, не пытайтесь анализировать все с помощью регулярных выражений. Сначала используйте синтаксический анализатор XML для извлечения href="...". Затем, конечно, используйте регулярное выражение, чтобы убедиться, что URL содержит configure.

Как заметил @KARASZI, XPath - еще один хороший подход.

...