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

正则表达式需求:仅允许单引号出现在单词内部,禁止连续单引号

解决方案

直接替换原代码的正则处理逻辑,分三步处理就能实现你的需求:

// 1. 清除连续的单引号(2个及以上)
s = Regex.Replace(s, @"'{2,}", " ");
// 2. 清除不在字母之间的单引号(开头、结尾、非字母旁的)
s = Regex.Replace(s, @"(?<![a-zA-Z])'|'(?![a-zA-Z])", " ");
// 3. 清理其他非法字符并统一格式
s = Regex.Replace(s, @"[^a-zA-Z']+", " ").Trim().ToLower();

逻辑说明:

  • 第一步@"'{2,}":匹配2个或更多连续单引号,直接替换成空格,彻底干掉连续单引号的情况。
  • 第二步用断言精准定位无效单引号:
    • (?<![a-zA-Z])':匹配前面不是英文字母的单引号(比如字符串开头的'、数字后的')
    • '(?![a-zA-Z]):匹配后面不是英文字母的单引号(比如字符串结尾的'、'后跟符号/数字)
      把这些不在单词内部的单引号全部替换成空格。
  • 第三步保留你原有的清理非字母/合法单引号的逻辑,加上Trim()去掉首尾多余空格,最后转小写。

示例测试:

输入:'''won't''test'123'hello
输出:won't test hello

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 00:05:10