正则表达式,用于从单个字符串中分隔源路径,目标路径,文件名和其他字段

时间:2017-09-16 01:05:22

标签: regex

我需要一个帮助来编写正则表达式,以便从单个字符串中分离源路径,目标路径,文件名和其他字段。我的输入字符串如下所示,

\\ hostname.abcd.com \ e $ \ abc \ Shared Transformations \ CSVtoSQL \ SQLDB
   E:\ abc \ Shared Transformations \ CSVtoSQL \ SQLDB get_file_name_csv_sqldb.ktr null
   空

从这个字符串我需要在下面单独的5个字符串,

  1. \\ hostname.abcd.com \ e $ \ abc \ Shared Transformations \ CSVtoSQL \ SQLDB
  2. E:\ abc \ Shared Transformations \ CSVtoSQL \ SQLDB
  3. get_file_name_csv_sqldb.ktr
  4. 现在写我正在使用[\ s +]正则表达式,但如果文件夹名称中有空格则返回错误的值。

    知道如何实现这一目标吗?

1 个答案:

答案 0 :(得分:0)

我要给出的答案做了一些假设。

  • 前两个条目可能包含空格,但另一个树不能包含空格。
  • 第二个条目是绝对Windows路径(以驱动器标签开头)。

如果是这种情况,则反转输入字符串并应用此模式:

(\S+)\s+(\S+)\s+([^:]+:\S)\s+(\S.+)

然后取每组的值并反转它们。第1,2,3,4,5组现在代表第5,4,3,2,1部分的值。你需要反转字符串的原因是模式不需要执行任何回溯。