【问题标题】:How to use Regex.Split on this String?如何在这个字符串上使用 Regex.Split?
【发布时间】:2010-01-21 03:44:16
【问题描述】:

有谁知道如何编写 Regex.Split 以进行转换

{video="my/video/file.flv,my/location.jpg"}

进入

  1. my/video/file.flv
  2. 我的/location.jpg

【问题讨论】:

  • 如果您允许任何路径包含逗号(这是 Windows 下允许的字符),除非每个路径以其他方式分隔,否则这是一个不可能的问题。
  • 所有路径都不会包含逗号。
  • 如何组合 IndexOf('\"')LastIndexOf('\"') 然后 Split(',') 代替?我可以保证这将更容易维护和更快。

标签: .net regex split


【解决方案1】:

像这样:

new Regex(@"[{="",}]").Split(@"{video=""my/video/file.flv,my/location.jpg}").Where(s => s.Length > 0)

编辑:在 VB 中:

Dim regex As New Regex("[{="",}]")
Dim myStr = "{video=""my/video/file.flv,my/location.jpg}"

Dim results = regex.Split(myStr).Where(Function(s) s.Length > 0)

【讨论】:

  • 谢谢,但是动态flv和动态jpg如何工作?
  • 另外,我尝试了 Telerik Converter,但遇到了语法错误。你有没有一些 VB 知识?
  • 动态flv和动态jpg是什么意思?您可以将任何您想要的字符串放入Split 调用中。
  • 它进入了一个内容管理系统。所以基本上他们会放入 {video="new/other/video.flv,a/different/image.jpg"}。我想要做的是用一个 JWPlayer 对象替换整个字符串,该对象将播放他们告诉它的视频。
  • @SLaks:我认为您缺少输入字符串中的右引号。
【解决方案2】:

您考虑过使用拆分功能吗?

string x  = "{video=\"my/video/file.flv,my/location.jpg\"}";
string xx = x.Split(',');

【讨论】:

  • 它必须是正则表达式匹配,因为“my/video/file.flv”和“my/location.jpg”会一直在变化。
【解决方案3】:

这项工作似乎对我有用。想法?

    Dim str As String = "this is exciting {video=""my/exciting/video.flv,my/refreshing/image.jpg""} this is refreshing"
    Dim regFind As String = "(?'text'\{video=""(.*)\""})"
    Dim matcher As Match = Regex.Match(str, regFind)

    Dim Matched As String() = (matcher.Groups("text").Value).Split(",")

    Dim video As String = Matched(0).Replace("{video=""", "")
    Dim jpg As String = Matched(1).Replace("""}", "")

    Response.Write(video)
    Response.Write("<br />")
    Response.Write(jpg)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-27
    • 1970-01-01
    • 2019-10-22
    • 2021-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多