|
|
1
4
我不认为这个选项内置于正则表达式中。但是有了C#3.0,你只需要使用一个简单的
为了提高效率,只需声明一次正则表达式——可能是在类级别,也可能是静态的——而不是一直重新创建它。此外,您可能只使用返回的数组来迭代结果。您可以通过跳过
.
|
|
|
2
2
以上所有表达式返回相同的21个元素,但它们的执行方式不同。我设置了一个快速测试,该测试的迭代次数超过100000次
YMMV。 但是,所需的元素仍然可以被空白包围。我想这也是不需要的,所以我要拆分的正则表达式是:
返回的元素包括:
在迭代数组时,剩下的几个空字符串在性能方面不应该造成大问题,并且在遇到它们时可以处理(读取:忽略)。
编辑:如果您测量性能,您可能会发现
|
|
|
3
1
至于效率:如果幸运的话,你可以通过编译正则表达式获得一些性能:
|
|
|
4
1
要从字符串中删除空格,只需执行以下操作
或者您也可以执行以下操作(未测试哪一个运行得更快)
在此之后,您可以使用分割代码将键放入字符串数组。 |
|
|
5
0
|
|
|
6
0
您可以修改正则表达式并返回匹配集合,而不是使用正则表达式拆分字符串。大概是这样的:
这将返回与正则表达式减去最终数组中的空(空白)元素相同的结果。 |
|
|
7
0
因此,您希望值之间多次出现的分隔符只匹配一次。
这应该按照这个顺序匹配任意数量的空格、一个分隔符以及任意数量的空格和其他分隔符。 添加C#字符串转义和编译声明:
|
|
|
DotFX · RegEx捕获关键字前但括号后的所有内容 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |
|
|
iato · 确保正则表达式不从命名材料中的数字中提取 1 年前 |
|
|
vr8ce · 非成对标记中特定字符的正则表达式 1 年前 |
|
|
MARTIN · 交换第一个和最后一个单词,反转所有中间的字符 1 年前 |
|
|
Carsten · 使用最近的搜索模式更改文本块 1 年前 |