我正在使用 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/