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

技术问询:如何用Regex仅捕获CT之前的内容?

正则捕获CT之前内容的解决方案

嘿,我来帮你搞定这个只捕获CT之前内容的正则需求~下面分几种常见场景给你对应的方案,还有实际代码示例:

基础场景(CT为大写,内容无换行)

如果你的输入里CT是明确的大写,且要捕获的内容不包含换行符,用这个正则就够了:

^(.*?)\s*CT

正则各部分解释:

  • ^:锚定字符串的起始位置,确保我们从开头开始匹配
  • (.*?):非贪婪模式的捕获组,会匹配任意字符(除换行)直到遇到后面的CT,这样就不会把CT后面的内容也捞进来
  • \s*:匹配0个或多个空白字符(空格、制表符都算),处理CT前面可能带空格的情况
  • CT:精准匹配目标字符串

举个例子:

输入:"Chest X-ray CT Scan Report"
捕获到的内容:"Chest X-ray"

忽略大小写的场景

如果输入里可能出现小写的ct或者混合大小写的Ct/cT,可以加上不区分大小写的标志:

(?i)^(.*?)\s*CT

这里的(?i)是内联的不区分大小写标志,不用依赖语言层面的设置。

包含换行的场景

如果要捕获的内容里包含换行符,需要让.能匹配换行,用这个带单行模式的正则:

(?s)^(.*?)\s*CT

(?s)是内联的单行模式标志,此时.会匹配包括换行在内的所有字符。

代码示例(Python)

import re

# 示例输入
input_str = "Abdomen Imaging CT Final Report\nPage 2"
# 用支持换行的正则
match = re.search(r'(?s)^(.*?)\s*CT', input_str)
if match:
    result = match.group(1)
    print(result)
# 输出:Abdomen Imaging

代码示例(JavaScript)

const inputStr = "Head CT Scan Results";
const regex = /^(.*?)\s*CT/;
const match = inputStr.match(regex);
if (match) {
    console.log(match[1]); // 输出:Head
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:13:13