2016-05-03 3 views
-5

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

Также следует сказать, что, если он содержит идентификатор он должен проверить, есть ли текст, а если conntainns профилей я должен проверить для чисел.

+0

@ nhouser9 Я не знаю с чего начать. Это в значительной степени, что я ищу, как начать. –

+2

Затем вы должны искать в Google учебные пособия по регулярному выражению, а не просто просить StackOverflow выполнять вашу работу за вас.Мы поможем вам с конкретными проблемами, но здесь вы просто не можете писать свой код. – nhouser9

ответ

1

Decription

Учитывая Ваш образец текста ...

http://steamcommunity.com/id/rasmusvejby/ 
http://steamcommunity.com/profiles/76561198040893433 

... это Regex ...

^https?://(?:www\.)?steamcommunity\.com/(id/([^/\s]*)|profiles/([^/\s]*)) 

... будет делать следующее

  1. Проверьте источник текста содержит steamcommunity.com
  2. матчей с или без ведущей www
  3. Позволяет http или https
  4. захватывает часть идентификатора или профильного URL
  5. захватывает строку для идентификатора или профиля

Захвата групп

  • Группа 0 получает полную строку
  • Группа 1 получает (ID или профили) и соответствующее значение
  • Группа 2 получает только значение ID
  • Группа 3 получает только значение профиля

Пример

образец соответствует

[0][0] = http://steamcommunity.com/id/rasmusvejby 
[0][1] = id/rasmusvejby 
[0][2] = rasmusvejby 
[0][3] = 

[1][0] = http://steamcommunity.com/profiles/76561198040893433 
[1][1] = profiles/76561198040893433 
[1][2] = 
[1][3] = 76561198040893433 

Объяснение

Regular expression visualization

NODE      EXPLANATION 
---------------------------------------------------------------------- 
^      the beginning of a "line" 
---------------------------------------------------------------------- 
    http     'http' 
---------------------------------------------------------------------- 
    s?      with or without 's' 
---------------------------------------------------------------------- 
    ://      '://' 
---------------------------------------------------------------------- 
    (?:      group, but do not capture (optional 
          (matching the most amount possible)): 
---------------------------------------------------------------------- 
    www      'www' 
---------------------------------------------------------------------- 
    \.      '.' 
---------------------------------------------------------------------- 
)?      end of grouping 
---------------------------------------------------------------------- 
    steamcommunity   'steamcommunity' 
---------------------------------------------------------------------- 
    \.      '.' 
---------------------------------------------------------------------- 
    com/      'com/' 
---------------------------------------------------------------------- 
    (      group and capture to \1: 
---------------------------------------------------------------------- 
    id/      'id/' 
---------------------------------------------------------------------- 
    (      group and capture to \2: 
---------------------------------------------------------------------- 
     [^/\s]*     any character except: '/', whitespace 
           (\n, \r, \t, \f, and " ") (0 or more 
           times (matching the most amount 
           possible)) 
---------------------------------------------------------------------- 
    )      end of \2 
---------------------------------------------------------------------- 
    |      OR 
---------------------------------------------------------------------- 
    profiles/    'profiles/' 
---------------------------------------------------------------------- 
    (      group and capture to \3: 
---------------------------------------------------------------------- 
     [^/\s]*     any character except: '/', whitespace 
           (\n, \r, \t, \f, and " ") (0 or more 
           times (matching the most amount 
           possible)) 
---------------------------------------------------------------------- 
    )      end of \3 
---------------------------------------------------------------------- 
)      end of \1 
Смежные вопросы