【问题标题】:Regex to pull value from middle of file path正则表达式从文件路径中间提取值
【发布时间】:2019-03-04 15:04:56
【问题描述】:

我想弄清楚如何从文件夹路径中提取以下字符串...我想从以下文件夹路径中提取 COMPANY_NAME。有没有办法使用 REGEX 在第二个和第三个反斜杠之间拉字符串?

例子:

\10.20.3.23\S$\COMPANY_NAME\Main_5e08a942f39a430db0b081736a3f1881\C_VOL-b002.spf

【问题讨论】:

  • 试试这个:\\[^\\]*\\[^\\]*\\([^\\]*)\\.*
  • 你好 @hacker315 我去掉了前导反斜杠,应该看起来像 \\10.20.3.23\S$\COMPANY_NAME\Main_5e08a942f39a430db0b081736a3f1881\C_VOL-b002.spf
  • 然后试试这个:\\\\[^\\]*\\[^\\]*\\([^\\]*)\\.*
  • @hacker315 我把它放到一个在线正则表达式编辑器中,它会拉出整行而不只是 COMPANY_NAME
  • 做到了!感谢您采纳了您的 powershell 和随地吐痰的建议,@hacker 感谢您的建议!!!

标签: regex


【解决方案1】:

试试这个(?(DEFINE)(?<urlPart>[^\\\s]+))\\\\(?&urlPart)\\(?&urlPart)\\\K(?&urlPart)demo

它将匹配您所追求的 URL 的所需部分。注意事项:

  • url不需要从字符串的开头开始(如果需要这个在define组后面加^)
  • 它将匹配同一字符串中的多个 url
  • 即使没有文件名也会匹配
  • 空格会使匹配无效
  • 查看demo了解详情

如果您想知道它使用subroutine definitions 来重用部分正则表达式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-10
    • 2012-07-25
    • 2013-06-03
    • 2020-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多