Проблемы с регулярным выражением в VB.net, как мне это сопоставить? - PullRequest
1 голос
/ 07 апреля 2011

Я никогда не понимаю, как создавать регулярные выражения, и теперь мне они очень нужны.Было бы замечательно, если бы кто-то знал, как это сделать.

Мне нужно сопоставить эти примеры с регулярным выражением и затем добавить текст перед третьей запятой: Примеры:

1.

Örjan ,,; Svensson ,,,, и затем это продолжается следующим образом

Необходимо стать:

Örjan ,,; SvenssonNEWTEXTHERE ,,,,, а затем он продолжает так

2.

Патрик, The-Man, Black ,,,,,,,,, а затем продолжает какэто

должно стать:

Патрик, Человек, ЧерныйNEWTEXTHERE ,,,,,,,,, и затем это продолжается так

Если бы я использовал подстановочные знаки для этого, это выглядело бы так:

*,*,*,*

И я хотел бы добавить текст перед последней запятой.Но мне по-прежнему нужна вся строка, чтобы текст можно было просто добавить туда. Я не хочу, чтобы символы, появляющиеся после добавленного текста, исчезали.

Это контактный файл .CSV, кстати, так что вы лучше понимаетеструктура текста.

Возможно ли это?

1 Ответ

1 голос
/ 07 апреля 2011

Регулярное выражение для поля CSV, т. Е. «Любой текст, не содержащий запятую», равно [^,]*, если вы хотите перейти к концу третьего поля, вы будете использовать

[^,]*,[^,]*,[^,]*

Теперь, если вы хотите изменить строку, вы можете использовать что-то вроде

Dim str = "Örjan,,;Svensson,,,,, and then it continues like this"
Dim re As New Regex("[^,]*,[^,]*,[^,]*")
Dim pos = re.Match(str).Length

Теперь у вас есть позиция, где вы хотите поместить дополнительную строку в pos, и вы можете делать с ней все, что захотите.

Обратите внимание, что файл CSV может , как правило, содержать поля, которые содержат буквенные запятые и должны быть заключены в кавычки (например, Patric,"The,Man",Black,...). Он может даже содержать перевод строки, что делает его довольно сложным для анализа, особенно с регулярными выражениями (и приведенный выше код не будет работать с такими данными). Можете ли вы быть уверены, что ваш CSV-файл не содержит полей в кавычках?

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