Я бы хотел String.Split () следующую строку, используя запятую в качестве разделителя:
John,Smith,123 Main Street,212-555-1212
Вышеуказанный контент вводится пользователем. Если они введут запятую в своем адресе, результирующая строка вызовет проблемы с String.Split (), поскольку теперь у вас есть 5 полей вместо 4:
John,Smith,123 Main Street, Apt 101,212-555-1212
Я могу использовать String.Replace () для всех пользовательских данных, чтобы заменить запятые чем-то другим, а затем снова использовать String.Replace (), чтобы преобразовать вещи обратно в запятые:
value = value.Replace(",", "*");
Однако это все равно можно обмануть, если пользователь использует разделитель «*» в своих входных данных. Тогда вы получите лишние запятые и без звездочек в результате.
Я вижу в Интернете решения для работы с экранированными разделителями, но я не нашел решения для этой, казалось бы, распространенной ситуации. Чего мне не хватает?
РЕДАКТИРОВАТЬ: Это называется столкновения разделителя .