怎么使用正则表达式匹配不包含某种结构的单词?

2015-08-17 13:13:04 +08:00
 Strikeactor

之前看有人推荐,试了下。做到这儿
http://regex.alf.nu/4
的时候卡住了,(\w )(\w )\2\1 可以把右边的结果全部匹配,但是找了好久也没找到对一个结构整体取非的方法,这道题的正确解题姿势是啥?

1560 次点击
所在节点    正则表达式
5 条回复
giskard
2015-08-17 15:46:27 +08:00
^(?!.*(\w )(\w )\2\1 ).*$

这样好像可以
Strikeactor
2015-08-17 16:07:29 +08:00
@giskard 所有的都匹配上了,你可以填到那个网站里试试
要否定“任何一处都不存在这种结构”真的蛮头疼的。。
giskard
2015-08-17 21:25:48 +08:00
@Strikeactor 不要复制进去,手动敲一遍
不知道为什么,复制进去不管用,但是手动敲进去有用
https://pt.sjtu.edu.cn/picbucket/43325_143981785155.png
Strikeactor
2015-08-17 23:34:57 +08:00
@giskard 卧槽,我再研究一下这个正则式。。
先谢过了!
giskard
2015-08-17 23:40:40 +08:00
@Strikeactor 改进一点点,可以多得两分哦
^(?!.*(.)(.)\2\1 ).*$

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

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

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

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

© 2021 V2EX