基本上我需要从文件中找到一个电子邮件地址,并用电子邮件标签替换电子邮件地址,例如,
`Joeri.DeVos@imec.be`
上述地址应替换为以下行
<email>Joeri.DeVos@imec.be</email>
我试过了,
Dim strFile As String = File.ReadAllText(TextBox1.Text & "\" & parentFolder & ".xml")
strFile = Regex.Replace(strFile, "\<[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z][A-Za-z][A-Za-z]?[A-Za-z]?\>", "<email>\<[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z][A-Za-z][A-Za-z]?[A-Za-z]?\></email>")
File.WriteAllText(TextBox1.Text & "\" & parentFolder & ".xml", strFile)
但是我无法对文件进行更改,而且正则表达式与记事本++中的电子邮件地址匹配
任何具有所需逻辑的人都会非常有帮助,
提前致谢
答案 0 :(得分:1)
您的示例似乎希望将电子邮件作为标记,例如
stuff<email@domain.tld>stuff
到
stuff<email><email@domain.tld></email>stuff
“regex.replace”的文档显示了以下格式:
Dim strFile As String = File.ReadAllText(TextBox1.Text & "\" & parentFolder & ".xml")
Dim rex as new regex("([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z][A-Za-z][A-Za-z]?[A-Za-z]?)")
strFile = rex.Replace(strFile, "<email>$0</email>")
File.WriteAllText(TextBox1.Text & "\" & parentFolder & ".xml", strFile)
你可能会像这样做一个if / else正则表达式:
Dim strFile As String = File.ReadAllText(TextBox1.Text & "\" & parentFolder & ".xml")
Dim rex as new regex("([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z][A-Za-z][A-Za-z]?[A-Za-z]?)")
Dim rex2 as new regex("(anotherRexEx expression here)")
If rex.IsMatch(strFile) Then
strFile = rex.Replace(strFile, "<email>$0</email>")
ElseIf rex2.IsMatch(strFile) Then
strFile = rex2.Replace(strFile, "<tag>$0</tag>")
ElseIf etc... Then
strFile = etc...
Else
etc...
End If
File.WriteAllText(TextBox1.Text & "\" & parentFolder & ".xml", strFile)