我正在将文本文件转换为制表符分隔的文本文件,并遇到了一点障碍。除了一小部分,我可以按我想要的方式获得所需的一切。VB.Net初学者:替换通配符,可能正则表达式?
我正在使用的一个字段的主题地址为单个条目(“1234 Happy Lane Somewhere,St 12345”),我需要按街道(Tab)城市(Tab)状态(选项卡)邮编。我挂断的一部分是国家和邮编之间的选项卡。
我一直在使用input = input.Replace遍历,到目前为止效果很好,但我想不出如何解决这个问题。我用过的通配符似乎没有工作,我无法用(“??”+ ControlChars.Tab +“#####”)替换(“?? #####”) ......我真的没有想到会工作,但这是我对此事的唯一想法。
我读过一些关于使用正则表达式,但没有经验,它似乎有点......压倒性的。
Regex是我最好的选择吗?如果没有,是否还有其他解决方案建议我可能错过了?
谢谢你的时间。 :)
编辑:这是我到目前为止使用的。它对有关的行进行了一些编辑,照顾空格,逗号和其他我不需要的文本,但对于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”位(实际数据明显被省略,隐私和专业whatnots)。
更新:正当我以为这一切都摆平了,我还有另一个障碍。原始数据给了我这个。
# TERMINOLOGY ######### ##/##/#### # ###.##
而最终的结果是给我这个,因为这是一个很好的数据块,在我删除标签之前。现在,我需要一种方法在它们被移除后替换它们,或者从我启动代码的文档范围Tab种族灭绝中省略这一小组代码。
#TERMINOLOGY###########/##/########.##
rgx.Replace上的变体在这里最适合吗?或者我可以将代码复制到变量中,从文档中删除选项卡,然后插入变量而不会丢失选项卡?
看到您迄今为止编写的代码会很有帮助。是的,正则表达式听起来就像是这个工作的工具,但如果你提供一个例子,有人可以很容易地给你你需要的线。 (另外,我们喜欢看看努力。) –
哦。当然。不过,我大部分时间对代码没有太多的信心。喋喋不休地沉浸在我的脑海中。我将编辑一些到原来的帖子.. – Eiketsu
虽然状态和zip在整个文档中都是不同的。这是让我在理解Regex.Replace的应用程序时挂起的一件事。 – Eiketsu