求助,懂正则表达式的看看,谢谢
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
-
- 帖子: 31
- 注册时间: 2011-04-01 18:20
求助,懂正则表达式的看看,谢谢
我很多文件,用正则表达式 :
git add *.[ch],
就是增加了所有的c和h文件,但是,要除去b.h,这个正则式怎么写 ?
git add *.[ch],
就是增加了所有的c和h文件,但是,要除去b.h,这个正则式怎么写 ?
- lainme
- 论坛版主
- 帖子: 7805
- 注册时间: 2008-09-13 19:17
- 系统: Arch Linux (x86_64)
- 联系:
-
- 帖子: 992
- 注册时间: 2007-12-05 10:57
- 系统: ubuntu14.04
- 来自: 金山
Re: 求助,懂正则表达式的看看,谢谢
这个要求不能用shell文件名扩展一次实现:所有的c和h文件,但是,要除去b.h
比如可以这样 !(b).[ch] 但这样就会连b.c也会被排除了
不如这样 :
代码: 全选
git add `ls *.[ch] | grep -v 'b\.h'`
- susbarbatus
- 帖子: 2966
- 注册时间: 2010-04-10 16:14
- 系统: Arch Linux
Re: 求助,懂正则表达式的看看,谢谢
.... 你不会直接 !(b).h 么……cao627 写了:这个要求不能用shell文件名扩展一次实现:所有的c和h文件,但是,要除去b.h
比如可以这样 !(b).[ch] 但这样就会连b.c也会被排除了
不如这样 :代码: 全选
git add `ls *.[ch] | grep -v 'b\.h'`
*.c !(b).h 这样就好了
沉迷将棋中……
-
- 帖子: 992
- 注册时间: 2007-12-05 10:57
- 系统: ubuntu14.04
- 来自: 金山
Re: 求助,懂正则表达式的看看,谢谢
也是啊!
@susbarbatus
@susbarbatus
-
- 帖子: 31
- 注册时间: 2011-04-01 18:20
Re: 求助,懂正则表达式的看看,谢谢
好像不行啊..susbarbatus 写了:.... 你不会直接 !(b).h 么……cao627 写了:这个要求不能用shell文件名扩展一次实现:所有的c和h文件,但是,要除去b.h
比如可以这样 !(b).[ch] 但这样就会连b.c也会被排除了
不如这样 :代码: 全选
git add `ls *.[ch] | grep -v 'b\.h'`
*.c !(b).h 这样就好了
git add !(b).[ch]
fatal:pathspec "!(b).[ch]" didn't match any files
-
- 帖子: 327
- 注册时间: 2008-05-30 16:22
Re: 求助,懂正则表达式的看看,谢谢
[^b].[ch]
-
- 帖子: 327
- 注册时间: 2008-05-30 16:22
Re: 求助,懂正则表达式的看看,谢谢
我理解错了,请自动忽略
-
- 帖子: 992
- 注册时间: 2007-12-05 10:57
- 系统: ubuntu14.04
- 来自: 金山
Re: 求助,懂正则表达式的看看,谢谢
你用是什么shell?好像不行啊..
git add !(b).[ch]
fatal:pathspec "!(b).[ch]" didn't match any files
只在bash上测试过 !(x)这种用法
如果你的shell是bash
先执行:
shopt -s extglob
试试
@ win1naruto
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
- 温习江湖
- 帖子: 580
- 注册时间: 2012-06-06 18:20
Re: 求助,懂正则表达式的看看,谢谢
正则中的环视,(?<!b)\.[ch]
当然,用在这里没用。
把b.h添加进gitignore
当然,用在这里没用。
把b.h添加进gitignore
-
- 帖子: 992
- 注册时间: 2007-12-05 10:57
- 系统: ubuntu14.04
- 来自: 金山
Re: 求助,懂正则表达式的看看,谢谢
单从正则的角度讲,这会把 b.c和b.h都过滤掉的。正则中的环视,(?<!b)\.[ch]
而且也会把 xb.h 这样类型的也会过滤掉,但搂主只要过滤b.h
- 温习江湖
- 帖子: 580
- 注册时间: 2012-06-06 18:20
Re: 求助,懂正则表达式的看看,谢谢
其实我也是前阵子一个文件处理的效率要求才开始认真学正则的。这里确实有错,多谢指正。现在正在考虑用平衡组、递归匹配之类解决,不过这些貌似网上的没多少好用的教程和例子cao627 写了:单从正则的角度讲,这会把 b.c和b.h都过滤掉的。正则中的环视,(?<!b)\.[ch]
而且也会把 xb.h 这样类型的也会过滤掉,但搂主只要过滤b.h