正则表达式

适用于 ubuntu 20.04
ubuntu 20.04 是 “西柚云” 主要使用的操作系统 西柚云官网

正则表达式是一串用于匹配字符的字符,字符就是我们能够看到的文字符号。正则表达式的的优点是可以使用少量字符匹配大量字符,这里我们将用于匹配其他字符的正则表达式称为模式

正则表达式是一项偏向于实践的知识,通过实践来学习会事半功倍,因此这里推荐大家到相应的正则表达式在线练习平台去学习。(会有视频演示)

我们学习正则表达式,是为了利用它来更方便地处理文本。那么什么是文本呢?文件中的内容属于文本,ls 的输出内容也属于文本,文本就是我们能够看到的文字符号。后文学习的命令(grep,sed,awk)会使用到正则表达式来处理文本内容。

当然,你可能还是对正则表达式的作用不甚清楚,这里我可以给出两条命令来演示一下它的功能。

1
2
3
4
5
# 删除 test.txt 中包含数字的行
sed -i '/[0-9]/d' test.txt

# 杀死运行命令中包含有 jupyter 关键字的所有进程
ps -ef | grep jupyter | awk '{if ($0 ~ /grep/) {next}; print($2)}' | xargs kill -9

表格来源:https://regexone.com/

模式 匹配文本
abc… Letters
123… Digits
\d Any Digit
\D Any Non-digit character
. Any Character
. Period
[abc] Only a, b, or c
[^abc] Not a, b, nor c
[a-z] Characters a to z
[0-9] Numbers 0 to 9
\w Any Alphanumeric character
\W Any Non-alphanumeric character
{m} m Repetitions
{m,n} m to n Repetitions
* Zero or more repetitions
+ One or more repetitions
? Optional character
\s Any Whitespace
\S Any Non-whitespace character
^…$ Starts and ends
(…) Capture Group
(a(bc)) Capture Sub-group
(.*) Capture all
(abc|def) Matches abc or def

在线正则表达式练习平台:https://regexlearn.com/zh-cn/learn

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2022-2023 柚子糖
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信