Как удалить некоторые символы с Regex в VS? - PullRequest
0 голосов
/ 27 августа 2010

У меня есть таблица SQL, и у меня есть столбец, который включает в себя такие данные, как: B757-34-11-00-I-1, A300-223100-0503-1 и т. Д.

A300-223100-0503-1 -> 223100-0503-1
B757-34-11-00-I-1 -> 34-11-00-I-1

Как я могу это сделать с помощью регулярных выражений?Мне нужны два вида решений: SQL и C #.Как я могу сделать это с SQL-запросом в SQL и C #

мне нужно, чтобы символ сброса, так как "-" может быть больше 5 символов или меньше?мне нужно также бросить "-"

Ответы [ 4 ]

2 голосов
/ 27 августа 2010

Регулярное выражение излишне для простых манипуляций со строками, как это.

C #:

value.Substring(value.indexOf('-') + 1)

SQL:

substring(field, charindex('-', field) + 1, 1000)

(Последний параметр может быть вычисленкак len(field) - charindex('-', field) - 1, но вы можете просто использовать значение, которое, как вы знаете, больше максимальной длины.)

1 голос
/ 27 августа 2010

Всегда ли просто отбрасывать первые 5 символов? Если это так, вам вообще не нужно использовать регулярные выражения.

C #:

value = value.Substring(5);

T-SQL:

SELECT SUBSTRING(field, 5, LEN(field) - 5)
0 голосов
/ 27 августа 2010
string input = "A300-223100-0503-1";
Regex rgx = new Regex("^[^-]+-(.*)$");
string result = rgx.Replace(input, "$1");
Console.WriteLine(result);
0 голосов
/ 27 августа 2010

В SQL:

SUBSTRING(col, PATINDEX('%-%', col) + 1)

в C #:

val.Substring(val.IndexOf('-') + 1)

Это требование очень простое, нет необходимости в регулярных выражениях (и SQL Server не поддерживает их в любом случае, еслиВы не добавляете это через хранимую процедуру, реализованную в .net).

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