在“电流密度为7A的测试安排”这句话中,我需要检查一下,在7A后面或7A之后的5个字内有“密度”这个词。所以我用迷幻药。像这个0..9+Blank+A。问题是如何使用命令“向前看”example1(?=example2)和“朝后看”example1(?<=example)来检查下一个或前一个单词,而是检查下一个或前5个单词?还有其他可能与此相匹配吗?
提前感谢
发布于 2015-02-07 18:39:54
查找头可以与(?=...)一起执行,用于正向查找,(?!...)用于负前瞻性。查找是(?<...)或(?!<...),但并不是所有正则表达式引擎都支持可变长度的后置查找,因此您可能会遇到问题。
对于展望部分,一个天真的解决方案(不考虑标点符号、由/w以外的事物组成的单词等等)将是:
7 A(?=\s+(?:\b\w+\s+){0,4}density)然后,您将想要查找前面的解决方案或查找后的解决方案。
然而,为什么不只是检查:“密度”然后0-4字然后7A或7A然后0-4字然后“密度”不看周围?有什么理由需要零宽度断言吗?
大概是这样的:
(?:density(?:\s+\w+\b){0,4}\s+)(7 A)|(7 A)(?:\s+(?:\b\w+\s+){0,4}density)https://stackoverflow.com/questions/28385767
复制相似问题