You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Regex查找同时包含两个指定单词的行?

如何用正则表达式查找同时包含两个指定单词的文本行

要匹配同时包含两个指定单词(比如MExp和Aggregate)的文本行,最灵活的方法是使用正向先行断言,它能不限制单词的出现顺序,同时确保两个单词都存在于同一行中。

核心正则表达式

^(?=.*MExp)(?=.*Aggregate).*$

各部分解释

  • ^:匹配一行的起始位置
  • (?=.*MExp):正向先行断言,验证当前行中存在MExp(.*匹配任意数量的任意字符)
  • (?=.*Aggregate):第二个正向先行断言,验证当前行中存在Aggregate
  • .*:匹配该行剩余的所有字符
  • $:匹配一行的结束位置

不同场景的调整

  1. 固定单词顺序
    如果确定两个单词的出现顺序(比如MExp一定在Aggregate之前),可以简化正则,不需要断言:
^.*MExp.*Aggregate.*$
  1. 匹配完整单词
    如果要避免部分匹配(比如防止MExpansion被误识别为MExp),可以添加单词边界\b:
^(?=.*\bMExp\b)(?=.*\bAggregate\b).*$
  1. 忽略大小写
    如果不需要区分大小写匹配,可在正则开头添加(?i)开启不区分大小写模式:
^(?i)(?=.*mexp)(?=.*aggregate).*$
  1. 多行文本处理
    当处理多行文本时,需要确保正则引擎开启多行模式(比如Python中使用re.MULTILINE参数),这样^和$才会匹配每一行的首尾,而非整个文本的首尾。

示例效果

假设存在以下文本:

This line has MExp but no Aggregate
Here we have both MExp and Aggregate
Aggregate comes before MExp in this line
No target words here

使用核心正则(开启多行模式)会匹配第二行和第三行。

内容的提问来源于stack exchange,提问作者bmi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 00:25:21