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

如何在Julia中用正则匹配句子所有单词并排除各类空白字符

问题原因

你当前的正则存在两处错误:

  • 字符组中写入的(^\n$)不会生效:字符组内部的^、$、括号都会被识别为普通字符,无法起到排除换行、锚定行首尾的作用,也没有覆盖\t、空格等其余空白字符的排除规则
  • 没有对空白字符做截断处理,导致换行符会和后续的单词被识别为同一个匹配项

解决方案

将正则替换为如下规则即可,修改后的完整代码:

sentence = """"That's the password: 'PASSWORD 123'!", cried the Special Agent.\nSo I fled."""
regex = r"\b[A-Za-z\d]+(?:'[A-Za-z]+)?\b"
v = [m.match for m = eachmatch(regex, sentence)]

运行后得到的匹配结果为:
["That's", "the", "password", "PASSWORD", "123", "cried", "the", "Special", "Agent", "So", "I", "fled"]
完全符合你的匹配需求。

规则说明

  • \b为单词边界锚点,会自动在空白、标点和单词字符的分界位置截断,天然排除所有空白字符(包括\n、\t、空格等),不会出现换行和单词连配的问题
  • 非捕获组(?:'[A-Za-z]+)?匹配单词中间的撇号,不会匹配到单词首尾的单引号,避免把'PASSWORD的开头引号也识别进结果
  • 仅允许字母、数字作为单词组成部分,完全匹配你的原始规则要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 18:24:03