考验一下你的正则功力

2017-03-02 18:15:34 +08:00
 kyrre
需求:
有如下文本,需要找出不含“ hede “的行, 不要告诉我用 grep -v ,我要纯正则表达式。
hoho
hihi
haha
hede
4379 次点击
所在节点    程序员
29 条回复
kyrre
2017-03-02 18:20:59 +08:00
目前搜到离答案最近的是
http://stackoverflow.com/questions/406230/regular-expression-to-match-a-line-that-doesnt-contain-a-word
但悲剧的是我自己用
grep '^((?!hede).)*$' b.txt
居然没用。
des
2017-03-02 18:26:02 +08:00
@kyrre egrep ??
54c3
2017-03-02 18:38:16 +08:00
54c3
2017-03-02 18:39:54 +08:00
@54c3 Updated, h([^e])h\1 will do the work.
https://regex101.com/r/aQUufT/2
langmoe
2017-03-02 18:44:06 +08:00
http://regex.alf.nu/
考验功力上这个啊
hellogbk
2017-03-02 19:21:17 +08:00
^(?!.*hede.*).*$
ProkillerJ
2017-03-02 19:33:00 +08:00
5 楼那个网站已经把正则玩出花了,不怕虐的可以去试一下
DiamondbacK
2017-03-02 19:41:41 +08:00
Use `grep -P pattern`.
wojiaodaxiaxia
2017-03-02 19:49:55 +08:00
6 楼应该是最准确直观的答案了吧
loading
2017-03-02 19:58:32 +08:00
@hellogbk 的答案是我第一感觉的答案,楼主,下一题吧。
kinghs
2017-03-02 20:21:58 +08:00
^(?!.*hede).*$
ColinZeb
2017-03-02 21:41:48 +08:00
@langmoe afoot|catfoot|dogfoot|fanfoot|foody|foolery|foolish|fooster|footage|foothot|footle|footpad|footway|hotfoot|jawfoot|mafoo|nonfood|padfoot|prefool|sfoot|unfool
knightdf
2017-03-02 21:57:28 +08:00
@langmoe 这个分数是越低越好?
pysama
2017-03-02 22:12:05 +08:00
/^(?!.*hede).*$/gi
pysama
2017-03-02 22:12:28 +08:00
@hellogbk 哟,我们的答案好像是一样的
kyrre
2017-03-02 22:16:37 +08:00
且慢点赞。

@hellogbk 我拿你的正则来跑测试没过。

grep '^(?!.*hede.*).*$' b.txt

b.txt 里是我的那几行 string 。
你是怎么跑过的?
wjm2038
2017-03-02 22:17:04 +08:00
@ColinZeb foo 不就行了吗。。。
kyrre
2017-03-02 22:17:35 +08:00
@des egrep 貌似没有用,普通的 grep 是支持正则的。
hellogbk
2017-03-02 22:19:21 +08:00
@kyrre #16
grep -P
kyrre
2017-03-02 22:19:50 +08:00
@54c3 233333
你真机灵,可惜这种解法不具备通用性,字符串随机一点你就没辙了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/344404

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX