首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式:如何通过后面的5个单词来看前面/后面?

正则表达式:如何通过后面的5个单词来看前面/后面?
EN

Stack Overflow用户
提问于 2015-02-07 18:26:45
回答 1查看 267关注 0票数 1

在“电流密度为7A的测试安排”这句话中,我需要检查一下,在7A后面或7A之后的5个字内有“密度”这个词。所以我用迷幻药。像这个0..9+Blank+A。问题是如何使用命令“向前看”example1(?=example2)和“朝后看”example1(?<=example)来检查下一个或前一个单词,而是检查下一个或前5个单词?还有其他可能与此相匹配吗?

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-07 18:39:54

查找头可以与(?=...)一起执行,用于正向查找,(?!...)用于负前瞻性。查找是(?<...)(?!<...),但并不是所有正则表达式引擎都支持可变长度的后置查找,因此您可能会遇到问题。

对于展望部分,一个天真的解决方案(不考虑标点符号、由/w以外的事物组成的单词等等)将是:

代码语言:javascript
复制
7 A(?=\s+(?:\b\w+\s+){0,4}density)

然后,您将想要查找前面的解决方案或查找后的解决方案。

然而,为什么不只是检查:“密度”然后0-4字然后7A或7A然后0-4字然后“密度”不看周围?有什么理由需要零宽度断言吗?

大概是这样的:

代码语言:javascript
复制
(?:density(?:\s+\w+\b){0,4}\s+)(7 A)|(7 A)(?:\s+(?:\b\w+\s+){0,4}density)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28385767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档