C# Regex 查找由可能的空格分隔的两个逗号

标签 c# regex

我正在使用 C# 处理一些 JavaScript 代码,遇到这样的情况:另一个对象中的一个对象被删除,因此我只剩下两个连续的逗号,它们之间有或没有空格。我想找到它们并用一个逗号替换。

我在 regexstorm.net 中试过这个正则表达式找到两个连续的逗号:

,\s*,

但是我没有得到任何匹配项。知道我做错了什么吗?

这是一个示例输入:

window.Something = {
​    O1: {
​       F1: "A"
​    },
​    ,
​    O3: {
​        F2: "C"
​    },
​    O4: {
​        F3: "D"
​    }
​}

最佳答案

您的内容包含一个 200B ZERO WIDTH SPACE,逗号之间用“空格”分隔。由于字符不属于空白,因此需要将其添加到模式中。

使用

,[\s\u200B]*,

参见 regex demo

或者,只需添加整个 \p{Cf} "Other, format" Unicode category :

,[\s\p{Cf}]*,

参见 another demo

每当您对正在处理的输入类型有疑问时,请使用一些十六进制工具。我更喜欢快速检查 r12 Unicode code conveter 处的字符串那,连同UniView tool , 是检查字符串输入中的 Unicode 符号的好资源(没有隶属关系,只是多年的普通用户)。

关于C# Regex 查找由可能的空格分隔的两个逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43977289/

相关文章:

C# 为什么我不能拆分字符串?

c# wmi - 检测多个 DIMM?

正则表达式多行匹配两个字符串之间的行的第一部分

c# - 正则表达式匹配所有字符直到到达字符,但也包括最后一个匹配

java - 使用java正则表达式查找以 '@' 开头并以 ' ' 结尾的所有字符串,但不包括 ' ' 和 '@'

python - 新行前任意数量单词的正则表达式

c# - 删除特定控件的所有事件处理程序

c# - 雾与 c# 统一

c# - 如何清空 TableLayoutPanel

c# - 什么是 PCRE 兼容语法? C# PCRE 兼容吗?