删除任何特殊字符前的字符c#

我试图删除字符串中的字符在任何非字母数字字符之前。例如,假设你有一个名字叫“James Ebanks-Blake”,我可以用下面的方法把它分解成一个数组:

var s = "James Ebanks-Blake".Split(' ');

即使有多个空间,它也会创建更多的数组索引。 所以我需要做的是循环所有数组,找到带有特殊字符的索引,然后删除所有索引和特殊字符。

任何人都可以帮我吗?

0
额外 编辑
意见: 1
在这种情况下,我只想得到“布雷克”。所以特殊字符将是那些不是直通或任何数字的字符。以这种方式,如果该人的名字是Scarlet O'Hara,则相同的代码将起作用。 (这会产生“哈拉”,虽然这可能是微不足道的,但有些情况下它会是相关的......
额外 作者 GenXisT,
是!我编辑到深夜(哈哈)
额外 作者 GenXisT,
上面的预期输出是什么? “布莱克”?你认为什么是“特殊”角色?
额外 作者 Cᴏʀʏ,
所以你会期望从Scarlet的例子中看到“Hara”?
额外 作者 Cᴏʀʏ,

2 答案

这在这里工作

[-^$#](.*)

只需在角色类中添加你认为特殊的角色

你想要的字符串将在组1中

resultString = Regex.Match(subjectString, "[-^$#](.*)", RegexOptions.Singleline).Groups[1].Value;
0
额外
除了当我在Scarlett O'Hara版本上试用时,这个似乎工作。我没有产生任何结果。看起来正则表达式需要一些调整。 (我不知道在正则表达式中发生了什么)。
额外 作者 GenXisT,
正确...我现在知道了......“角色班”在托架中......所以我添加了“在那里,它工作!真棒。非常感谢!!
额外 作者 GenXisT,
只需在字符类中添加您认为特别的内容,即在[和]之间。所以对于Scarlett O'Hara,你需要添加单引号'并且它变成[ - ^ $#']
额外 作者 buckley,
耶好一个:)
额外 作者 buckley,

<�代码> [ - '](。*)</代码>

这应该抓住 -'之后的任何内容。如果你愿意,你可以在[]部分添加更多的字符。只要确保逃脱特殊的正则表达式。

0
额外