【问题标题】:Regex.Split Path正则表达式.分割路径
【发布时间】:2013-10-31 10:57:34
【问题描述】:

我必须将没有文件名的路径拆分为和平。 由于路径的来源可能来自不同的操作系统,我认为最好使用正则表达式。

路径示例可以是:

     Dim _path As String = "C:\First\Second\third"
     Dim _path As String = "C:\\First\Second\third/"
     Dim _path As String = "C:/First/Second/third\"
     Dim _path As String = "C:/First\Second\third"
     Dim _path As String = "C://First/Second/third"
     Dim _path As String = "usr/bin/first/second/third"
     Dim _path As String = "/usr/bin/first/second/third/"

...和其他类似的变体。

简而言之,路径必须按“//”或“\\”或“/”或“\”的顺序分割

字符串数组想要的结果是:

    Splitted(0) = "C:"
    Splitted(1) = "First"
    Splitted(2) = "Second"
    Splitted(3) = "Third"

    OR

    Splitted(0) = "usr"
    Splitted(1) = "bin"
    Splitted(2) = "First"
    Splitted(3) = "Second"
    Splitted(4) = "Third"

如何在VB.NET中编写那些Regex.Split代码?

【问题讨论】:

  • 您要查找的正则表达式是[\\\/]+
  • 谢谢狼。在尾随(最后一个)斜杠的情况下,此表达式给出最后一个空字符串。这个可以修复吗?其他情况这很好解决!您可以以“Answer”的形式回复我,以便我为它投票。
  • 我认为最好使用 Anton 在下面的回答中提出的方法。

标签: regex vb.net


【解决方案1】:

最好和最快的方法是使用 Split 方法而不是 RegExp。

Dim Splitted As String() = _path.Split(New [Char]() {"\"c, "/"c},  StringSplitOptions.RemoveEmptyEntries)

【讨论】:

  • 当您需要手动执行此类拆分或使用没有 Split() 方法的语言时,我会执行以下操作:(1)将所有非标准分隔符替换为标准分隔符(2)先添加额外的并额外的最后一个分隔符(3)替换所有出现的双/三/等(4)然后使用正则表达式或字符索引,无论该语言具有何种含义
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-12
  • 1970-01-01
  • 1970-01-01
  • 2023-02-08
  • 2020-09-30
  • 2014-05-09
  • 2013-02-12
相关资源
最近更新 更多