如何从字符串中删除单词?

时间:2009-11-27 18:55:25

标签: vb.net string

我有一个包含带括号的单词的字符串。我需要从字符串中删除整个单词。

例如:对于输入,"car wheels_(four) klaxon"结果应为"car klaxon"

有人可以给我一个可以实现此目的的例子吗?

3 个答案:

答案 0 :(得分:6)

您可以使用正则表达式执行此操作。您需要的正则表达式是:

"\s?\S+[()]\S+\s?"

这将删除包含(或)或两者的任何单词,并删除该单词并折叠周围的空白。匹配应该用一个空格替换。

在C#中,正则表达式可以像这样使用:

    string s = "car wheels_(four) klaxon";
    s = Regex.Replace(s, @"\s?\S*[()]\S*\s?", " ");

我不完全确定VB的翻译,但希望你能搞清楚。

答案 1 :(得分:1)

略有不同:

sed "s/\s\+\S*(.\+)\S*\s\+/ /g" yourfile

它的工作原理如下:

yourfile:

car wheels_(four) klaxon
ciao (wheel) hey
foo bar (baz) qux
stack overflow_(rulez)_the world
转化为:

car klaxon
ciao hey
foo bar qux
stack world

答案 2 :(得分:0)

如果速度不是问题,并且你想避免过于复杂的正则表达式,你可以在“”上使用String.Split创建一个“单词”数组,遍历每个单词,替换任何String.Contains“( “使用空字符串,然后使用带有”“分隔符的String.Join来获得结果。

抱歉无法发送codez,手头没有VB.NET编译器。