我有这个字符串例如:" Example_string.xml" 我想在"之前添加。" _DateTime现在所以它会像:
" Example_string_20151808185631.xml"
我怎样才能实现它?正则表达式?
答案 0 :(得分:1)
是的,您可以通过使用前瞻来实现这一目标。例如:
Dim result As String = Regex.Replace("Example_string.xml", "(?=\.)", "_20151808185631")
由于模式只匹配字符串中的位置(句点之前的位置),而不是匹配文本的一部分,因此replace方法实际上不会替换任何输入文本。它实际上只是将替换文本插入字符串中的该位置。
或者,如果您发现令人困惑,您可以只匹配期间,然后只在替换文本中包含句点:
Dim result As String = Regex.Replace("Example_string.xml", "\.", "_20151808185631.")
如果你不想只查找任何句号,并且想要更安全一些(例如处理包含多个句点的文件名,那么你可以使用类似的句子来代替\.
\.\w+$
。但是,如果您需要使其具有弹性,并且不必使用RegEx,那么最好使用Path.GetFileNameWithoutExtension
和Path.GetExtension
方法, Crowcoder推荐。例如,你可能还需要让它处理没有扩展名的文件名,这甚至会使它复杂化。
答案 1 :(得分:1)
...或
Path.GetFileNameWithoutExtension("Example_string.xml") + "_20151808185631" + Path.GetExtension("Example_string.xml")
答案 2 :(得分:1)
怎么样:
Dim sFile As String = "Example_string.xml"
Dim sResult As String = sFile.ToLower.Replace(".xml", "_" & Format(Now(), "yyyyMMddHHmmss") & ".xml")
MsgBox(sresult, , sFile)