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

TCL中含两种模式的正则表达式编写求助

TCL正则表达式实现方案

直接用以下正则模式即可满足需求:

regexp -all -inline {([A-Za-z]+)|([[:print:]&&[^A-Za-z]]+)} $Text

模式说明

  • 第一分支 [A-Za-z]+:匹配1个及以上大小写字母组成的纯字母序列,完全符合纯字母单词的定义。
  • 第二分支 [[:print:]&&[^A-Za-z]]+:
    • [:print:] 表示所有可打印字符(本身已排除控制字符)
    • &&[^A-Za-z] 是TCL正则的交集语法,筛选出其中非字母的部分
    • 整体匹配1个及以上纯可打印非字母的序列,满足“非字母、无控制字符、不混合字母”的要求

可选调整(针对空格)

如果不需要匹配空格(把空格当成分隔符而非特殊字符),可以将[:print:]替换为[:graph:]([:graph:]是除空格外的可打印图形字符),模式改为:

regexp -all -inline {([A-Za-z]+)|([[:graph:]&&[^A-Za-z]]+)} $Text

示例验证

假设$Text为Hello, world! 2024:

  • 使用[:print:]版本会得到匹配列表:Hello, ,, , world, !, , 2024
  • 使用[:graph:]版本会得到:Hello, ,, world, !, 2024

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 13:33:33