Сопоставление шаблонов в URL с языком, похожим на регулярное выражение, но специфичным для URL - PullRequest
0 голосов
/ 13 февраля 2010

Я использую соответствующие URL-адреса в части моего кода. Теперь я использую регулярные выражения для этого. Это хорошо, но не всегда дает «хорошие», просто читаемые шаблоны. Определен ли какой-либо язык для соответствующих URL-адресов? Это должно быть так: http://*.example.com/* так что просто подстановочные знаки и вещи, полезные для URL, будут там.

Лучше всего, если эти выражения можно просто преобразовать в регулярные выражения. Знаете ли вы спецификацию для такого языка или даже реализацию, предпочтительно для ruby ​​... в противном случае я сам ее реализую ... ключом является читаемость шаблонов. Спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 27 апреля 2010

URL может быть немного сложно правильно проанализировать, особенно если вы хотите соответствовать стандартам. Вот почему в Ruby есть встроенная библиотека uri.

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

0 голосов
/ 13 февраля 2010

Вы должны тщательно продумать свой синтаксис, прежде чем начать. На первый взгляд, то, что вы намереваетесь достичь, будет легко достигнуто путем перевода вашего синтаксиса в обычные регулярные выражения:

s = 'http://*.example.com/*' #=> "http://*.example.com/*"
r = Regexp.compile("^#{Regexp.escape(s).gsub('\*','.*')}$") #=> http:examplecom
'http://test.example.com/path/to/doc.html' =~ r #=> 0
'http://test.example2.com/path/to/doc.html' =~ r #=> nil
...