如题。
比如像 (1+2)=3 (1:2)=0.5 (1/2)=0.5
如何提取1和2出来吗?
shell正则如何匹配()/等符号?
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
-
- 帖子: 1983
- 注册时间: 2010-05-01 21:23
-
- 帖子: 120
- 注册时间: 2014-04-30 15:44
- 系统: linux
Re: shell正则如何匹配()/等符号?
1和2出现N次, 你指的是哪次的1和2?
若是最后一个唯一有"/"的, 那么
若是最后一个唯一有"/"的, 那么
代码: 全选
echo "(1+2)=3 (1:2)=0.5 (1/2)=0.5" |sed 's/\(^.*\)(\(.*\)\/\(.*\)).*$/\2 \3/'
-
- 帖子: 992
- 注册时间: 2007-12-05 10:57
- 系统: ubuntu14.04
- 来自: 金山
Re: shell正则如何匹配()/等符号?
如果是中文的小括号:
如果是英文的括号,用斜杠转意
grep -oP '(?<=\().|.(?=\))'
代码: 全选
echo "(1+2)=3 (3:4)=0.5 (5/6)=0.5" | grep -oP '(?<=().|.(?=))'
1
2
3
4
5
6
grep -oP '(?<=\().|.(?=\))'
-
- 帖子: 1983
- 注册时间: 2010-05-01 21:23
Re: shell正则如何匹配()/等符号?
请问shell的正则如何表示 或者
还有如何去掉某个特定的字符如(,/
还有如何去掉某个特定的字符如(,/
-
- 帖子: 992
- 注册时间: 2007-12-05 10:57
- 系统: ubuntu14.04
- 来自: 金山
Re: shell正则如何匹配()/等符号?
首先,弄清一个概念请问shell的正则如何表示 或者
shell本身不支持正则,是工具程序如: sed ,awk ,grep 支持正则。
如楼上,两条命令行中,shell只是负责将单引号‘ ’中间的字符串如实传给 sed和 grep,然后sed和grep将这个字符串当作一个正则表达式来处理。