User Tools

Site Tools


регулярные_выражения

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
регулярные_выражения [2012/02/15 13:27]
val
регулярные_выражения [2016/04/07 09:22]
val [Регулярные выражения]
Line 1: Line 1:
 ====== Регулярные выражения ====== ====== Регулярные выражения ======
 +
 +  * [[https://​youtu.be/​BhbDsKetNn8|Видео:​ Про регулярные выражения]]
  
 <​code>​ <​code>​
Line 5: Line 7:
 </​code>​ </​code>​
  
-[[http://​ru.wikipedia.org/​wiki/​Регулярное_выражение]] +  * [[http://​ru.wikipedia.org/​wiki/​Регулярное_выражение|Регулярное ​выражение]] 
- +  ​* ​[[http://​www.ibm.com/​developerworks/​ru/​library/​l-regexp_1/​|Секреты регулярных выражений]] 
-[[http://​www.ibm.com/​developerworks/​ru/​library/​l-regexp_1/​]]+  * [[Команды фильтры#​grep]]
  
 ===== Символы базовых регулярных выражений ===== ===== Символы базовых регулярных выражений =====
- 
-==== Звездочка -- * -- ==== 
-Означает любое количество символа в строке,​ предшествующего "​звездочке",​ в том числе и нулевое число символов. 
- 
-==== Точка -- . -- ==== 
- ​Означает не менее одного любого символа 
  
 ==== Символ -- ^ -- ====  ==== Символ -- ^ -- ==== 
Line 49: Line 45:
 grep -R '​\<​sed\>'​ /usr/share grep -R '​\<​sed\>'​ /usr/share
 </​code>​ </​code>​
 +
 +==== Звездочка -- * -- ====
 +Означает любое количество символа в строке,​ предшествующего "​звездочке",​ в том числе и нулевое число символов.
 +
 +==== Точка -- . -- ====
 + ​Означает не менее одного любого символа
  
 ==== Экранированные "​круглые скобки"​ -- \( \) -- ====  ==== Экранированные "​круглые скобки"​ -- \( \) -- ==== 
 Предназначены для выделения групп регулярных выражений. Они полезны при использовании с оператором "​\|"​ и при извлечении подстроки. Предназначены для выделения групп регулярных выражений. Они полезны при использовании с оператором "​\|"​ и при извлечении подстроки.
 <​code>​ <​code>​
-$ cat catalog.txt ​+$ cat catalog.txt 
 +</​code><​code>​
 petrof ivan 234-56-78 petrof ivan 234-56-78
 ivanof sidor 214-56-78 ivanof sidor 214-56-78
-<Ctrl-D> +</​code><​code>
 $ sed '​s/​\(.*\) .* \(.*\)/\1 \2/' catalog.txt $ sed '​s/​\(.*\) .* \(.*\)/\1 \2/' catalog.txt
-petrof 234-56-78 
-ivanof 214-56-78 
 </​code>​ </​code>​
  
Line 71: Line 71:
 </​code>​ </​code>​
 ===== Классы символов POSIX ===== ===== Классы символов POSIX =====
-[:class:] это альтернативный способ указания диапазона символов. 
-<​code>​ 
-$ grep '​\<​[[:​alpha:​]]\{X\}\>'​ /​etc/​login.conf 
-        :​ignorenologin:​\ 
-#       :​ignorenologin:​\ 
-#       :​maxmemorysize-cur=128M:​\ 
-#       :​refreshperiod@:​\ 
-#       :​refreshperiod@:​\ 
  
-$ grep '​\<​[A-Za-z]\{X\}\>'​ /​etc/​login.conf +Заменяем в файле catalog.txt ​некоторые ​пробелы на TAB
-</​code>​ +
- +
-Заменяем в файле catalog.txt пробел на TAB+
 <​code>​ <​code>​
 $ sed '​s/​\(.*\)[[:​space:​]].*[[:​space:​]]\(.*\)/​\1 \2/' catalog.txt ​ $ sed '​s/​\(.*\)[[:​space:​]].*[[:​space:​]]\(.*\)/​\1 \2/' catalog.txt ​
Line 89: Line 78:
 ivanof 214-56-78 ivanof 214-56-78
 </​code>​ </​code>​
 +
 ===== Символы расширенных регулярных выражений ===== ===== Символы расширенных регулярных выражений =====
  
Line 104: Line 94:
 Указывает на то, что предыдущий символ или выражение встречается 1 или более раз (добавляем произвольное количество символов разделителей в файл catalog.txt). Указывает на то, что предыдущий символ или выражение встречается 1 или более раз (добавляем произвольное количество символов разделителей в файл catalog.txt).
 <​code>​ <​code>​
-$ sed -E '​s/​([[:​alpha:​]]+)[[:​space:​]]+.*[[:​space:​]]+([[:​alpha:]]*)/\1 \2/' catalog.txt+$ sed -E '​s/​([[:​alnum:​]]+)[[:​space:​]]+[[:​alnum:​]]+[[:​space:​]]+([[:​alnum:]]+)/\1 \2/' catalog.txt
 petrof 234-56-78 petrof 234-56-78
 ivanof 214-56-78 ivanof 214-56-78
 </​code>​ </​code>​
  
регулярные_выражения.txt · Last modified: 2023/01/10 10:43 by val