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

如何扩展正则表达式以保留\w、单词间连字符并移除数字

正则调整方案

核心修改逻辑:
原来的正则默认保留的\w包含数字,同时判断连字符边界时用的\w也会把数字判定为合法边界,因此做两处调整:

  1. 新增数字匹配规则,将所有数字纳入要移除的范围
  2. 将连字符边界判断条件从\w(单词字符,含数字)调整为仅匹配字母,确保只有前后都是字母的连字符才会被保留

适配Unicode字母的正则(推荐)

适用支持Unicode属性的正则引擎:Python 3+、Java 8+、JavaScript ES2018+等

\d|[^\p{L} -]|_|-(?!\p{L})|(?<!\p{L})-

使用方式:将所有匹配到该正则的内容替换为空字符串即可。


兼容低版本引擎的正则(适配德语+英文字母)

如果你的正则引擎不支持\p{L}语法,可以手动指定要保留的字母范围:

\d|[^a-zA-ZäöüÄÖÜß -]|_|-(?![a-zA-ZäöüÄÖÜß])|(?<![a-zA-ZäöüÄÖÜß])-

效果验证

用你提供的示例输入测试:

  • 输入:123 !"§$%&/()= äüöüÄÖÜÄßßßß hello-123, hello-hello, hello-.
  • 输出:äüöüÄÖÜÄßßßß hello hello-hello hello
    完全符合预期要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 00:27:01