2013-12-20 3 views
-2

Это может быть матч с регулярным выражением http://i.imgur.com/xxx?Будет ли это регулярное выражение «i.imgur.com/xxx»?

"http://i.imgur.com/[a-zA-Z0-9]*" 

На самом деле я не использую регулярное выражение, и я узнал его один раз. Я googled, как сделать это для imgur, и у каждого из них были очень длинные, разве это не достаточно хорошо? он работает, но что ему не хватает и как улучшить?

Я хочу найти все i.imgur.com/xxx, чтобы загрузить imgur .jpg. В основном он должен выглядеть как «http://i.imgur.com/» остальное будет либо «afsidjf123» «Bdfsi13» «123aslefBA»

+2

Каждое регулярное выражение начинается с вопроса * «что я пытаюсь соответствовать» *. Вы не говорите нам об этом. –

+0

Что вы хотите сделать? – neminem

+0

Для начала, в regex '.' (точка) является метасимволом, который соответствует любому символу, поэтому я полагаю, что нет ответа. С чем вы пытаетесь соответствовать? –

ответ

2

Одним слова, да.

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

В качестве альтернативы, вы можете использовать что-то более простое, как \w, который соответствует всем символам слова:

http://i\\.imgur\\.com/\\w* 

тоже важно:. специальный символ в регулярных выражениях, используемых, чтобы соответствовать «любой один символ»; вы можете получить некоторые ложные срабатывания, используя его так, как вы. Вам нужно будет избегать буквенных периодов с обратной косой чертой \.

в действии здесь: http://regex101.com/r/tP0iU7

(Обратите внимание на обратную косую черту маскирование /, потребность в PHP, и в приведенном выше выражении \ должны быть экранированы от другого \).

Некоторые вещи, чтобы отметить:

  • Поскольку вы используете Java, вы должны будете двойной побег каждый обратный слэш, а, как регулярные выражения в Java только обычные строки. Пример обновлен, чтобы отразить это.
  • Помните, что это выражение не будет соответствовать . в image.jpg; если вы хотите его также захватить, вам нужно будет использовать класс символов, например [\w.], а не только \w.
  • Имейте в виду, что, указав конкретно http://, вы никогда не сможете встретить что-либо, размещенное на https://. Вы могли бы сделать этот матч как путем добавления «не жадный» s? так: https?://
+0

спасибо, мне нравится \ w лучше. – gallly

+0

@aaa наверняка - просто имейте в виду, что он не будет соответствовать '.' в' image.jpg', и если вы хотите его захватить, вам нужно будет использовать класс символов, например '[\ w.]', а не просто '\ w'. – brandonscript

1

Прежде всего, вам нужно бежать ., как это специальный символ в регулярном выражении (то есть любой символ). Это регулярное выражение будет соответствовать http://i\.imgur\.com/ следует любым буквы или цифрами, если это то, что вы хотите:

"http://i\.imgur\.com/[a-zA-Z0-9]+" 
+0

Я пробовал это сделать, и он говорит: Недействительная escape-последовательность (допустимые - \ b \ t \ n \ f \ r \ "\ '\\) – gallly

+0

Какой язык вы используете? – Szymon

+0

Я использую java на окнах – gallly

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