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

请求编写Talend可用的Java正则表达式:保留字母数字及指定标点

解决方案

在Talend的tReplace组件中,使用Java的StringUtils.replaceAll方法时,你可以通过否定字符类正则匹配并移除所有非合法字符,保留指定的字母、数字和标点符号(包括示例中的空格)。

最终代码

StringUtils.replaceAll(row1.label, "[^A-Za-z0-9 !\"#$%&'()*+,-./:;<=>?@\\[\\]^_{|}~°]", "")

正则说明

  1. 核心逻辑:[^...]是正则的否定字符类,匹配所有不在括号内的字符,替换为空字符串即可保留合法字符。
  2. 转义处理:
    • Java字符串中,双引号"需转义为\",反斜杠\需转义为\\,因此方括号[/]在正则中写成\\[/\\]
    • 把-放在字符类的末尾,避免被解析为范围运算符(比如a-z)
  3. 包含空格:根据你提供的合法产品名称示例(如「175/65 R14 Efficiency +」),空格属于需要保留的字符,因此已加入字符类中;若无需保留空格,可直接移除字符类中的空格。

验证效果

  • 合法字符串「175/65 R14 Efficiency +」「XXX N° 5 H7DC」中的所有字符都在保留集合内,会完整保留
  • NBSP(Unicode U+00A0)及其他不在指定集合的非法字符会被自动移除

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 21:20:27