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
регулярные_выражения [2012/02/15 13:27]
val
регулярные_выражения [2023/01/10 10:43] (current)
val [Классы символов POSIX]
Line 1: Line 1:
 ====== Регулярные выражения ====== ====== Регулярные выражения ======
 +
 +  * [[https://​youtu.be/​BhbDsKetNn8|Видео:​ Про регулярные выражения]]
  
 <​code>​ <​code>​
 $ man re_format $ man re_format
-</​code>​ 
  
-[[http://​ru.wikipedia.org/​wiki/​Регулярное_выражение]]+$ man regex 
 +</code>
  
-[[http://​www.ibm.com/​developerworks/​ru/​library/​l-regexp_1/​]]+  * [[http://​ru.wikipedia.org/​wiki/​Регулярное_выражение|Регулярное выражение]] 
 +  * [[http://​www.ibm.com/​developerworks/​ru/​library/​l-regexp_1/​|Секреты регулярных выражений]] 
 +  * [[Команды фильтры#​grep]]
  
 ===== Символы базовых регулярных выражений ===== ===== Символы базовых регулярных выражений =====
- 
-==== Звездочка -- * -- ==== 
-Означает любое количество символа в строке,​ предшествующего "​звездочке",​ в том числе и нулевое число символов. 
- 
-==== Точка -- . -- ==== 
- ​Означает не менее одного любого символа 
  
 ==== Символ -- ^ -- ====  ==== Символ -- ^ -- ==== 
Line 40: Line 38:
 Служит для экранирования специальных символов,​ это означает,​ что экранированные символы должны интерпретироваться буквально,​ т.е. как простые символы (в некоторых случаях наоборот). Служит для экранирования специальных символов,​ это означает,​ что экранированные символы должны интерпретироваться буквально,​ т.е. как простые символы (в некоторых случаях наоборот).
 <​code>​ <​code>​
-grep 'bin\/​sh' ​/etc/passwd+echo 172.16.10.254 gate.isp10.un >> /​etc/​hosts 
 + 
 +grep -r "172\.16\.1\." ​/etc
 </​code>​ </​code>​
  
Line 49: Line 49:
 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 76:
 </​code>​ </​code>​
 ===== Классы символов POSIX ===== ===== Классы символов POSIX =====
-[:class:] это альтернативный способ указания диапазона символов. 
 <​code>​ <​code>​
-$ grep '​\<​[[:​alpha:​]]\{X\}\>'​ /​etc/​login.conf +alnum   alpha   ascii   ​blank ​  ​cntrl ​  ​digit ​  ​graph ​  lower 
-        :​ignorenologin:​\ +print   ​punct ​  ​space ​  ​upper ​  ​word ​   xdigit
-#       :​ignorenologin:​\ +
-#       :​maxmemorysize-cur=128M:​\ +
-#       :​refreshperiod@:​\ +
-#       :​refreshperiod@:​\ +
- +
-$ grep '​\<​[A-Za-z]\{X\}\>'​ /​etc/​login.conf+
 </​code>​ </​code>​
- +Заменяем в файле catalog.txt ​некоторые ​пробелы на TAB
-Заменяем в файле catalog.txt пробел на TAB+
 <​code>​ <​code>​
 $ sed '​s/​\(.*\)[[:​space:​]].*[[:​space:​]]\(.*\)/​\1 \2/' catalog.txt ​ $ sed '​s/​\(.*\)[[:​space:​]].*[[:​space:​]]\(.*\)/​\1 \2/' catalog.txt ​
Line 89: Line 86:
 ivanof 214-56-78 ivanof 214-56-78
 </​code>​ </​code>​
 +
 ===== Символы расширенных регулярных выражений ===== ===== Символы расширенных регулярных выражений =====
  
Line 104: Line 102:
 Указывает на то, что предыдущий символ или выражение встречается 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>​
  
регулярные_выражения.1329298042.txt.gz · Last modified: 2013/05/22 13:50 (external edit)