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

如何用正则匹配并筛选两个[1]标签间不含星号的多行内容?

正则表达式匹配并删除不含星号的[1]分隔片段

需求说明

给定被[1]标签分隔的文本片段,需要筛选并删除那些**内部不包含任何星号(*)**的分隔片段。比如你提供的示例中,第二个[1]到第三个[1]之间的片段就是需要删除的目标。

正则表达式方案

匹配目标片段的正则

\[1\](?:(?!\[1\])[^*])*

正则规则解释

  • \[1\]:精确匹配分隔标签[1](转义[和]是因为它们属于正则特殊字符)
  • (?:(?!\[1\])[^*])*:非捕获组,匹配任意不是星号且未到达下一个[1]标签的字符,重复零次或多次。这确保了匹配的片段内部没有星号,且不会跨越到下一个分隔标签。

操作方式

将正则匹配到的内容直接替换为空字符串,即可批量删除所有不含星号的[1]分隔片段。

示例验证

针对你给出的示例文本:

[1] "Q 1  Gender * modal2"
Gender          1   0.0165 0.00144 0.6990  0.555   
modal2          2   0.1588 0.01387 3.3636  0.010 **                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
[1] "Q 1  Gender * interv"
Gender          1   0.0165 0.00144 0.6876  0.495
interv          4   0.0563 0.00492 0.5868  0.765             
[1] "Q 1  Acad_categ * Acad_field"....

使用上述正则会精准选中不含星号的片段:

[1] "Q 1  Gender * interv"
Gender          1   0.0165 0.00144 0.6876  0.495
interv          4   0.0563 0.00492 0.5868  0.765             

替换为空后,剩余内容即为所有含星号的有效片段。

内容的提问来源于stack exchange,提问作者Osmel Bordiés López

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 03:15:04