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

如何使用Regex匹配首个以特定字符开头的单词?

如何用正则表达式抓取首个以Test-开头的单词?

嘿,这个需求其实挺容易实现的,用正则表达式就能精准搞定!我分两种常见场景给你说明:

场景1:抓取独立的、首个以Test-开头的单词

这里的“单词”指被空白/标点符号分隔的序列(比如你的例子Test-12.2.1),推荐用这个正则:

\bTest-\S+

正则拆解:

  • \b:单词边界,确保Test-前面不会跟着字母、数字或下划线(保证这是一个独立的单词)
  • Test-:固定匹配你要找的前缀
  • \S+:匹配后续所有非空白字符,直到遇到空格、换行或其他空白符号为止(刚好覆盖整个目标单词)

代码示例(Python):

import re

# 示例文本
input_text = "这是一段测试文本 Test-12.2.1 后面还有另一个 Test-3.4.5"
# 查找第一个匹配项
match_result = re.search(r'\bTest-\S+', input_text)

if match_result:
    target_word = match_result.group()
    print(target_word)  # 输出:Test-12.2.1

代码示例(JavaScript):

const inputText = "这是一段测试文本 Test-12.2.1 后面还有另一个 Test-3.4.5";
const regex = /\bTest-\S+/;
const matchResult = inputText.match(regex);

if (matchResult) {
    const targetWord = matchResult[0];
    console.log(targetWord); // 输出:Test-12.2.1
}

场景2:抓取字符串中第一个出现的以Test-开头的字符序列(不管是否独立)

如果你的文本里可能存在类似abcTest-6.7.8这种非独立的序列,且需要优先抓取这种第一个出现的,直接用这个正则配合搜索即可:

Test-\S+

因为search(Python)或match(JavaScript)默认会从左到右查找第一个匹配项,不需要额外的前缀匹配。

补充说明:

如果你的文本包含换行符,需要让正则能跨行匹配的话:

  • Python中可以添加re.DOTALL参数:re.search(r'\bTest-\S+', input_text, re.DOTALL)
  • JavaScript中可以添加s修饰符:/\bTest-\S+/s

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:06:40