正则表达式匹配行首的问题

sh/bash/dash/ksh/zsh等Shell脚本
pangding
帖子: 48
注册时间: 2011-03-01 23:14

Re: 正则表达式匹配行首的问题

#16

帖子 pangding » 2011-05-03 13:47

原来 grep 还有 -P 这个参数。 :em06

那显然他就万能了。以后我看我都不用问这类问题了~~
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 正则表达式匹配行首的问题

#17

帖子 lilydjwg » 2011-05-03 13:55

pangding 写了:原来 grep 还有 -P 这个参数。 :em06

那显然他就万能了。以后我看我都不用问这类问题了~~
正则替换还是得 perl 亲自出马的
pangding
帖子: 48
注册时间: 2011-03-01 23:14

Re: 正则表达式匹配行首的问题

#18

帖子 pangding » 2011-05-03 16:41

lilydjwg 写了:
正则替换还是得 perl 亲自出马的

我在写 vim 的 ftplugin ,用来高亮一种文件类型的文本。所以必须用 vi 的正则。
当时发帖问这是觉得这个问题比较普通,不一定非要找会 vi 的人来问。

不过学了 grep -P 还是很管用,因为有的时候,经常感觉好多东西只用 ERE 说不清楚。能用 perl RE 就方便多了。
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 正则表达式匹配行首的问题

#19

帖子 lilydjwg » 2011-05-03 17:17

pangding 写了:
我在写 vim 的 ftplugin ,用来高亮一种文件类型的文本。所以必须用 vi 的正则。
当时发帖问这是觉得这个问题比较普通,不一定非要找会 vi 的人来问。
[...]
原来如此,那怎么跑到 shell 版来了?到 Python/Perl/PHP 那个版不是更好?ERE 太弱了,而且容易写错(不知道要不要转义)。
pangding
帖子: 48
注册时间: 2011-03-01 23:14

Re: 正则表达式匹配行首的问题

#20

帖子 pangding » 2011-05-03 19:29

刚来,还不是很熟悉论坛的地里状况。
fnan
帖子: 919
注册时间: 2009-07-01 22:04

Re: 正则表达式匹配行首的问题

#21

帖子 fnan » 2011-05-03 23:10

ERE能存在不是吹出来的:
kose5@kose5-Aspire-4552:~$ cat a
cat dsf dsdf
df cat fgfg cat
cat
12cat
cat nm cat
cat bncat
ccat
asd dsf
kose5@kose5-Aspire-4552:~$ grep -no '.\bcat\b' a
2: cat
2: cat
3: cat
5: cat
kose5@kose5-Aspire-4552:~$
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
pangding
帖子: 48
注册时间: 2011-03-01 23:14

Re: 正则表达式匹配行首的问题

#22

帖子 pangding » 2011-05-04 9:16

嗯。是也行。
但 ERE 的限制就比较多,比如你用的 \b,按理说肯定不是 BRE 里的东西。而且 POSIX 标准也没说 ERE 里要有。

另外,你的那个代码会高亮
dog=cat
中的 = 号。按理说是不应该高亮的。

不过如果高亮空格倒是可以授受,因为如果不加底纹,下划线之类的东西,高亮空格看不太出来。
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 正则表达式匹配行首的问题

#23

帖子 lilydjwg » 2011-05-04 10:55

pangding 写了: 不过如果高亮空格倒是可以授受,因为如果不加底纹,下划线之类的东西,高亮空格看不太出来
你没见过高亮成鲜红色的空格吧?
pangding
帖子: 48
注册时间: 2011-03-01 23:14

Re: 正则表达式匹配行首的问题

#24

帖子 pangding » 2011-05-04 18:35

是没见过。
那种是底色吧?同样的高亮效果用在一个普通的字符什么样?白底红字还是红底黑字?
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 正则表达式匹配行首的问题

#25

帖子 lilydjwg » 2011-05-04 20:55

pangding 写了:是没见过。
那种是底色吧?同样的高亮效果用在一个普通的字符什么样?白底红字还是红底黑字?
不知道。我写 Python 时行尾的空格 Vim 就给高亮了。

PS: 用 Vim 看 whitespace 的代码不错。
pangding
帖子: 48
注册时间: 2011-03-01 23:14

Re: 正则表达式匹配行首的问题

#26

帖子 pangding » 2011-05-05 11:33

lilydjwg 写了: 不知道。我写 Python 时行尾的空格 Vim 就给高亮了。

PS: 用 Vim 看 whitespace 的代码不错。
我这 python 默认是不高亮空格错误的。如果高亮的话,是高亮到 Error 上面去了。
你用

代码: 全选

:so $VIMRUNTIME/syntax/hitest.vim
可以显示所有激活的高亮设置。里面用 python 开头的,就是 python 用的。
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 正则表达式匹配行首的问题

#27

帖子 lilydjwg » 2011-05-05 12:02

pangding 写了:
lilydjwg 写了: 不知道。我写 Python 时行尾的空格 Vim 就给高亮了。

PS: 用 Vim 看 whitespace 的代码不错。
我这 python 默认是不高亮空格错误的。如果高亮的话,是高亮到 Error 上面去了。
你用

代码: 全选

:so $VIMRUNTIME/syntax/hitest.vim
可以显示所有激活的高亮设置。里面用 python 开头的,就是 python 用的。
好吧,我常用的配色的 Error 是红底的。。。
回复