Язык Java 
      
     
      
       Работа с текстом 
       Регулярные выражения

      
       Введение 
      
     
      
       <ul>
        
         <li>java.util.regex — Java 2 
        
       <...

      
       java.util.regex 
      
     
      
       <ul>
        
         <li>Проверка через регулярное выражение ...

      
       Pattern 
      
     
      
       <ul>
        
         <li>Разделители, используемые в регулярных выраж...

      
       Классы символов 
      
     
      
       <ul>
        
         <li>Символы, используемые для отображени...

      
       Группы 
      
     
      
       <ul>
        
         <li>Группа — представляет собой логическое делени...

      
       Класс Pattern 
      
     
      
       <ul>
        
         <li>Константы 
        
       </ul>
     ...

      
       Pattern 
      
     
      
       <ul>
        
         <li>static Pattern compile(String regex) Throws ...

      
       Matcher 
      
     
      
       <ul>
        
         <li>Pattern pattern() - получение объекта Patter...

      
       Класс Matcher 
      
     
      
       <ul>
        
         <li>String group() - получение строки соот...

      
       Интерфейс MatchResult 
      
     
      
       <ul>
        
         <li>public int start() 
        
 ...

      
       Пример использования 
      
     
      
       <ul>
        
         <li>Console con=System.console(); S...

      
       Результат 
      
     
      
       <ul>
        
         <li>Enter regex: ([a-z]+)@([a-z]+).(w{2,4}) En...

      
       Результат 
      
     
      
       <ul>
        
         <li>Enter regex: (dd)1 Enter string:3333 fhs...

      
       Конец 
      
     
      
       Вопросы 
       e-mail: a.bovanenko@gmail.com
Upcoming SlideShare
Loading in …5
×

Regular Expressions

2,110 views

Published on

Presentation about regular expression in java language (Classes: Pattern, Matcher)

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,110
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
28
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Regular Expressions

    1. 1. Язык Java Работа с текстом Регулярные выражения
    2. 2. Введение <ul> <li>java.util.regex — Java 2 </ul> <ul> <li>Регулярные выражения обеспечивают гибкий инструмент для работы с текстом </ul> <ul> <li>Работа с текстом </ul> <ul> <ul> <li>Через методы объекта String </ul> </ul> <ul> <ul> <li>Через массив char </ul> </ul>
    3. 3. java.util.regex <ul> <li>Проверка через регулярное выражение </ul> <ul> <ul> <li>String regex = &quot;[A-Za-z0-9_.-]+@[A-Za-z0-9.-]+org&quot;; if (email.matches(regex)) return true; </ul> </ul> <ul> <li>Объекты java.util.regex </ul> <ul> <ul> <li>Pattern — представляет собой определение объекта поиска в терминах регулярных выражений </ul> </ul> <ul> <ul> <li>Matcher — представляет собой объект, полученный в результате поиска </ul> </ul>
    4. 4. Pattern <ul> <li>Разделители, используемые в регулярных выражениях </ul> <ul> <li>Для восприятия данного символа как обычного — он должен быть экранирован </ul>
    5. 5. Классы символов <ul> <li>Символы, используемые для отображения классов символов </ul> <ul> <li>Классы символов могут быть отображены в [] </ul> <ul> <li>После класса символа может быть указано их количество </ul>
    6. 6. Группы <ul> <li>Группа — представляет собой логическое деление текста </ul> <ul> <li>Обратные ссылки (back reference) — представляют собой ссылки на ранее найденные группы </ul> <ul> <ul> <li>Обращение производится по номеру группы, например, 2. </ul> </ul> <ul> <ul> <li>Pattern.compile(&quot;(+)&quot;) </ul> </ul>
    7. 7. Класс Pattern <ul> <li>Константы </ul> <ul> <ul> <li>Int UNIX_LINES = 0x01 — окончание строки представляет собой символ </ul> </ul> <ul> <ul> <li>int CASE_INSENSITIVE = 0x02 — при сравнении строк не будет учитываться регистр </ul> </ul> <ul> <ul> <li>int COMMENTS = 0x04 — возможность использования комментариев ( от символа # и до конца строки), например, Pattern.compile(&quot;A #matches char code 65&quot;,Pattern.COMMENTS); </ul> </ul> <ul> <ul> <li>int MULTILINE = 0x08 — использование многострочного режима </ul> </ul> <ul> <ul> <li>int DOTALL = 0x20 — в данном режиме метасимвол «.» будет соответствовать не только символам, но и переводу строки </ul> </ul> <ul> <ul> <li>int LITERAL = 0x10 — в этом режиме метасимволы в строке поиска будут рассматриваться как обычные символы </ul> </ul> <ul> <ul> <li>int UNICODE_CASE = 0x40 — режим обработки UNICODE строк </ul> </ul>
    8. 8. Pattern <ul> <li>static Pattern compile(String regex) Throws a PatternSyntaxException — компиляция регулярного выражения в паттерн </ul> <ul> <li>static Pattern compile(String regex, int flags) Throws a PatternSyntaxException </ul> <ul> <li>String pattern() - получение используемого регулярного выражения </ul> <ul> <li>Matcher matcher(CharSequence input) — получение объекта Matcher, соответствующего регулярному выражению </ul> <ul> <li>int flags() - получение используемых флагов </ul> <ul> <li>static boolean matches (String regex,CharSequence input) — проверка на соответствие регулярному выражению текста </ul> <ul> <li>String[] split(CharSequence input, int limit) — разделение строки на элементы </ul> <ul> <li>String[] split(CharSequence input) </ul>
    9. 9. Matcher <ul> <li>Pattern pattern() - получение объекта Pattern для данного объекта Matcher </ul> <ul> <li>Matcher usePattern(Pattern newPattern) — изменение объекта Pattern для данного объекта Matcher </ul> <ul> <li>Matcher reset() - сброс состояния объекта Matcher </ul> <ul> <li>Matcher reset(CharSequence input) — сброс состояния объекта Matcher со сменой строки поиска </ul> <ul> <li>int start() - получение индекса символа начала соответствия </ul> <ul> <li>int start(int group) - получение индекса символа начала соответствия в группе </ul> <ul> <li>int end() - получение индекса символа, следующего за последним символом соответствия </ul> <ul> <li>int end(int group) - получение индекса символа, следующего за последним символом соответствия в группе </ul>
    10. 10. Класс Matcher <ul> <li>String group() - получение строки соответствия </ul> <ul> <li>String group(int group) — получение строки соответствия в группе </ul> <ul> <li>int groupCount() - получение количества групп </ul> <ul> <li>boolean find() - поиск соответствия во входной последовательности </ul> <ul> <li>boolean matches() - проверка на соответствие </ul> <ul> <li>Matcher appendReplacement(StringBuffer sb, String replacement) — замена подстроки в строке и получение нового объекта </ul> <ul> <li>StringBuffer appendTail(StringBuffer sb) - добавление к новому объекту остатка строки </ul> <ul> <li>String replaceAll(String replacement) — замена в строке </ul> <ul> <li>String replaceFirst(String replacement) — одиночная замена в строке </ul> <ul> <li>Matcher region(int start, int end) — ограничение региона поиска для объекта Matcher </ul>
    11. 11. Интерфейс MatchResult <ul> <li>public int start() </ul> <ul> <li>int start(int group) </ul> <ul> <li>int end() </ul> <ul> <li>int end(int group) </ul> <ul> <li>String group() </ul> <ul> <li>String group(int group) </ul> <ul> <li>int groupCount() </ul>
    12. 12. Пример использования <ul> <li>Console con=System.console(); System.out.print(&quot;Enter regex: &quot;); String reg=con.readLine(); System.out.print(&quot;Enter string:&quot;); String val=con.readLine(); System.out.println(&quot;Replacement: &quot;); String rep=con.readLine(); System.out.println(&quot;Regex: &quot;+reg+&quot; String: &quot;+val); Pattern p=Pattern.compile(reg); Matcher m=p.matcher(val); while(m.find()) { MatchResult mr=m.toMatchResult(); for(int i=0;i<=mr.groupCount();i++) System.out.println(mr.group(i)); } m.reset(); System.out.println(&quot;Replacement result: &quot;+m.replaceAll(rep)); </ul>
    13. 13. Результат <ul> <li>Enter regex: ([a-z]+)@([a-z]+).(w{2,4}) Enter string:aa@aa.com hhhhh@ bb@bb.com dghadj asjd @ [email_address] Replacement: test Regex: ([a-z]+)@([a-z]+).(w{2,4}) String: aa@aa.com hhhhh@ bb@bb.com dghadj as jd @ [email_address] [email_address] aa aa com [email_address] bb bb com [email_address] ff ff com Replacement result: test hhhhh@ test dghadj asjd @ test </ul>
    14. 14. Результат <ul> <li>Enter regex: (dd)1 Enter string:3333 fhsdf 4566 6675 7777 8888 9999999 vbjfs 3452 Replacement: found Regex: (dd)1 String: 3333 fhsdf 4566 6675 7777 8888 9999999 vbjfs 3452 3333 33 7777 77 8888 88 Replacement result: found fhsdf 4566 6675 found found 9999999 vbjfs 3452 </ul>
    15. 15. Конец Вопросы e-mail: a.bovanenko@gmail.com

    ×