Необходимо обрезать строку до конца после определенной комбинации символов - PullRequest
3 голосов
/ 08 июня 2010

Мне нужна помощь в обрезке всего в моей строке до конца после того, как она встретит первый "\ 0"

Итак:

"Тест \ 1 \ 2 \ 3 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0_asdfgh_qwerty_blah_blah_blah"

становится

"Тест \ 1 \ 2 \ 3"

Я использую c #. Помощь будет принята с благодарностью.

Спасибо.

Ответы [ 7 ]

6 голосов
/ 08 июня 2010

Как насчет:

string s = "test\1\2\3\0\0\0\0\0\0\0\0\0_asdfgh_qwerty_blah_blah_blah";

int offset = s.IndexOf("\\0");
if (offset >= 0)
    s = s.Substring(0, offset);
5 голосов
/ 08 июня 2010
if (someString.Contains("\\0"))
    someString = someString.Substring(0, someString.IndexOf("\\0"));
1 голос
/ 08 июня 2010

somestring=Regex.split(somestring,"\\0")[0];

1 голос
/ 08 июня 2010

Найдите позицию первого вхождения "\ 0" и создайте другую строку, которая является подстрокой вашего оригинала от начала до позиции первого вхождения.

0 голосов
/ 08 июня 2010

Значение совпадения, возвращаемое следующим регулярным выражением, должно быть тем, что вы ищете (в качестве альтернативы методу подстроки), в основном оно начинается с начала строки и до тех пор, пока следующие два символа не являются \0 это расширяет соответствие:

^(?:(?!=\0).)+
0 голосов
/ 08 июня 2010
if (origString.IndexOf(@"\0") != -1) {
   newString = origString.Substring(0, origString.IndexOf(@"\0");
} else {
    newString = origString;
}
0 голосов
/ 08 июня 2010
String.Substring(0, String.IndexOf("\0"))
...