正则表达式与运用

简介: 正则表达式用的地方是很多的。比如字符串处理过程中。最近遇到记录一下。1. 比如在shell中1 #!/bin/bash2 3 str="date:2017-11-28 os:centos blackbord:blog"4 5 echo $str | grep centos --colo...

正则表达式用的地方是很多的。比如字符串处理过程中。最近遇到记录一下。

1. 比如在shell中

1 #!/bin/bash
2 
3 str="date:2017-11-28 os:centos blackbord:blog"
4 
5 echo $str | grep centos --color
6 echo $str | grep -oE centos --color
7 #组的使用
8 echo $str | sed -rne 's/.*(date:[0-9]{4}-[0-9]{2}-[0-9]{2}).*(blackbord:[a-z]+).*/group:\1 group:\2/p'

执行输出:

1 date:2017-11-28 os:centos blackbord:blog
2 centos
3 group:date:2017-11-28 group:blackbord:blog

2. Python中

 1 #coding=utf-8
 2 import re
 3 
 4 str1="line:20 date(2017-11-28) os:centos blackbord[blog] last"
 5 
 6 matchobj = re.search("(date\(\d+-\d+-\d+\)).*(os:[a-z]+).*(blackbord\[[a-z]+\])", str1)
 7 if matchobj:
 8     num = len(matchobj.groups())
 9     print "match_len:" + str(num)
10     print matchobj.groups()
11 
12     date = matchobj.group(1)    #date(2017-11-28)
13     date = date[5:len(date)-1]
14     os = matchobj.group(2)  #os:centos
15     os = os[3:]
16     blackbord = matchobj.group(3)   #blackbord[blog]
17     blackbord = blackbord[10:len(blackbord) -1 ]
18     print("date:%s\nos:%s\nblackbord:%s" % (date, os, blackbord))
19 else:
20     print "not match str1"

 输出:

1 match_len:3
2 ('date(2017-11-28)', 'os:centos', 'blackbord[blog]')
3 date:2017-11-28
4 os:centos
5 blackbord:blog

 

例子中的正则表达式多次使用到了捕获组,主要是方便查找与输出。() 每个括号是一个捕获组。

更多关于捕获组的用法可以参考网上其他博客,

如: http://blog.csdn.net/lxcnn/article/details/4146148

 

相关文章
|
6月前
|
索引 Python
正则表达式详解
正则表达式详解
|
7月前
最全面的常用正则表达式大全
最全面的常用正则表达式大全
|
数据安全/隐私保护
正则表达式之最常用的
正则表达式之最常用的
86 0
|
数据安全/隐私保护
正则表达式_2
学习自编程胶囊课程。
106 1
正则表达式_2
|
机器学习/深度学习 前端开发 JavaScript
一文掌握正则表达式
本文适合对正则不太熟悉,以及想掌握正则表达式的小伙伴阅读~
|
JavaScript 前端开发 Java
最全的常用正则表达式大全
很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求。所以我最近把开发中常用的一些正则表达式整理了一下,在这里分享一下。
1370 0
|
机器学习/深度学习 Windows JavaScript
详细的正则表达式
只能输入数字:"^[0-9]*$"。只能输入n位的数字:"^\d{n}$"。只能输入至少n位的数字:"^\d{n,}$"。只能输入m~n位的数字:。"^\d{m,n}$"只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。
885 0
|
Web App开发 JavaScript 前端开发
正则表达式小记
什么是正则表达式 正则表达式是用于匹配字符串中字符组合的模式。在 JavaScript中,正则表达式也是对象。这些模式被用于 RegExp 的 exec 和 test 方法, 以及 String 的 match、replace、search 和 split 方法。
1217 0