Я конвертирую текстовый файл в текстовый файл с разделителями с разделителями-табуляторами и сталкивается с некоторой проблемой. Я могу получить все, что мне нужно, чтобы работать так, как я хочу, за исключением одной маленькой части.VB.Net Новичок: замените подстановочными знаками, возможно, RegEx?
В одном поле, в котором я работаю, есть домашние адреса предметов в виде одной записи («1234 Happy Lane Somewhere, St 12345»), и мне нужно, чтобы каждый разбился на улицу (Tab) City (Tab) State (Tab) State (Tab) Tab) Zip. Одна часть, на которой я повесил трубку, - это вкладка между государством и почтой.
Я использую input = input.Replace повсюду, и он хорошо работает до сих пор, но я не могу придумать, как распутать этот. Подстановочные знаки, к которым я привык, похоже, не работают, я не могу заменить («?? #####») на («??» + ControlChars.Tab + «#####») ... что я честно не ожидал, что работаю, но это единственная идея по моему делу.
Я немного читал об использовании Regex, но у меня нет опыта, и это кажется немного ... подавляющим.
Является ли Regex моим лучшим вариантом для этого? Если нет, есть ли другие предложения по решениям, которые я, возможно, пропустил?
Спасибо за ваше время. :)
EDIT: Вот что я использую до сих пор. Он делает некоторые изменения в соответствующей строке, заботясь о пробелах, запятых и других текстах, которые мне не нужны, но у меня нет ничего для ситуации State/Zip; У меня плохая привычка вытирать что-то, если оно не работает, но я добавлю последнее, что я использовал до самого конца, если это поможет.
If input Like "Guar*###/###-####" Then
input = input.Replace("Guar:", "")
input = input.Replace(" ", ControlChars.Tab)
input = input.Replace(",", ControlChars.Tab)
input = "C" + ControlChars.Tab + strAccount + ControlChars.Tab + input
End If
input = System.Text.RegularExpressions.Regex.Replace(" #####", ControlChars.Tab + "#####") <-- Just one example of something that doesn't work.
Это то, что написано на входе в данном примере
" Guar: LASTNAME,FIRSTNAME 999 E 99TH ST CITY,ST 99999 Tel: 999/999-9999"
И это то, что я могу получить в результате до сих пор
C 99999/9 LASTNAME FIRSTNAME 999 E 99TH ST CITY ST 99999 999/999-9999
Со всем быть именно то, что мне нужно, кроме бит «ST 99999» (с фактическими данными, явно опущенными для обеспечения конфиденциальности и профессиональных нот).
UPDATE: Когда я думал, что все это в квадрате, у меня есть еще одна загвоздка. Необработанные данные дают мне это.
# TERMINOLOGY ######### ##/##/#### # ###.##
И конечный результат дает мне это, потому что это фрагмент данных, который был очень хорошо, как есть ..., прежде чем я извлекал Вкладки. Теперь мне нужен способ заменить их после того, как они были удалены, или опустить эту небольшую группу кода из общего генома Tab Tab, с которого я запускаю код.
#TERMINOLOGY###########/##/########.##
Возможно ли вариант на rgx.Replace работать лучше всего здесь? Или я могу скопировать код в переменную, удалить вкладки из документа, а затем вставить переменную без потери вкладок?
Было бы полезно ознакомиться с кодом, который вы написали до сих пор. Да, регулярное выражение похоже на инструмент для этой работы, но если вы представите пример, кто-то может легко предоставить вам нужную вам линию. (Кроме того, нам нравится видеть усилие.) –
Oh. Конечно. Тем не менее, у меня нет большой веры в мой код. Мел это до постоянного ощущения, что я над головой. Я отредактирую некоторых в исходное сообщение. – Eiketsu
Состояние и почтовый индекс все разные в документе. Это одна вещь, которая заставила меня повесить на понимание приложения Regex.Replace. – Eiketsu