Как я могу удалить слово из строки? - PullRequest
1 голос
/ 27 ноября 2009

У меня есть строка, которая содержит слова с круглыми скобками. Мне нужно удалить все слово из строки.

Например: для ввода "car wheels_(four) klaxon" результат должен быть "car klaxon".

Может ли кто-нибудь дать мне пример, который бы этого достиг?

Ответы [ 3 ]

6 голосов
/ 27 ноября 2009

Вы можете сделать это с помощью регулярных выражений.Вам нужно следующее регулярное выражение:

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

Это удаляет любое слово, содержащее (или) или оба, и удаляет оба слова и сворачивает окружающие пробелы.Соответствие должно быть заменено одним пробелом.

В C # регулярное выражение может использоваться следующим образом:

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

Я не совсем уверен в переводе VB для этого, нонадеюсь, вы можете понять это.

1 голос
/ 27 ноября 2009

Немного отличается:

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
0 голосов
/ 27 ноября 2009

Если скорость не является проблемой, и вы хотите избежать чрезмерно усложненных регулярных выражений, вы можете использовать String.Split для "", чтобы создать массив "слов", перебирать каждое слово, заменять любое, которое String.Contains "( "с пустой строкой, затем используйте String.Join с разделителем" ", чтобы получить результаты.

Извините, не могу отправить код, нет компилятора VB.NET под рукой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...