我有一个包含带括号的单词的字符串。我需要从字符串中删除整个单词。
例如:对于输入,"car wheels_(four) klaxon"
结果应为"car klaxon"
。
有人可以给我一个可以实现此目的的例子吗?
答案 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编译器。