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

C#正则如何仅保留单个分隔符?字符串拆分实现求助

解决方案:用正则全局匹配目标单元再转换大小写

看起来你已经搞定了空格的提取,但卡在了按.分隔单个字母同时保留最后一段带括号内容的问题上。核心问题在于直接用split('.')会把空格和前面的字母混在一起,没法单独提取空格元素。我们换个思路:直接匹配所有需要作为数组元素的单元,再统一转大写即可。

具体思路

我们需要匹配三种目标单元:

  • 单个小写字母(对应原字符串中.分隔的单个字符)
  • 空格(直接保留为数组元素)
  • 带括号的后缀内容(比如ng(ing),作为一个整体)

对应的正则表达式可以写为:/[a-z]|\s|\w+\(ing\)/g

  • [a-z]:匹配单个小写字母
  • \s:匹配空格
  • \w+\(ing\):匹配以(ing)结尾的字母组合(如果需要适配任意带括号后缀,可调整为\w+\([^)]+\))

代码示例(以JavaScript为例)

const inputStr = "x.i.x.m x.i.x.m.ng(ing)";
// 全局匹配所有目标单元
const matchedItems = inputStr.match(/[a-z]|\s|\w+\(ing\)/g);
// 转换为大写并得到结果数组
const resultArray = matchedItems.map(item => item.toUpperCase());

console.log(resultArray);
// 输出:["X", "I", "X", "M", " ", "X", "I", "X", "M", "NG(ING)"]

为什么这个方法可行?

  • 正则会自动跳过所有的.,直接提取我们需要的内容,不用额外处理分隔符
  • 空格被单独匹配,自然成为数组中的独立元素
  • 带括号的后缀被作为一个整体匹配,不会被拆分成单个字母

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:23:19