【问题标题】:regex pattern matching any text between two strings正则表达式模式匹配两个字符串之间的任何文本
【发布时间】:2013-06-20 14:51:05
【问题描述】:

我有一些这样的文字。

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                template="/test/data/" >

我想编写一个匹配组合和模板之间的任何字符串的正则表达式模式。

我试过 composition(.*)template。但这似乎不起作用。

【问题讨论】:

  • 试试(.*?)而不是(.*)
  • 看看这个问题:stackoverflow.com/questions/3697644/… 它应该给你一个好的开始,但是它不包括在 xmlns 部分中找到page 的情况。
  • @Josh,请使用答案区域发布可能的解决方案。
  • @Denomales 我注意到最近有人这样做。我认为是害怕被拒绝。如果您提交了人们不喜欢的实际解决方案,您可能会被否决,但您只能因评论而被投赞成票(或被标记,这几乎不会发生)。
  • @Josh,确实,如果您发布错误的答案,您可能会被否决,但如果您在被否决后删除答案,任何丢失的积分都会退回您的帐户。

标签: regex


【解决方案1】:

您需要使用 /m 选项告诉正则表达式引擎将您的标量视为多行字符串;否则它不会尝试匹配换行符。

我在 C# 中描述的一个例子是:

    string data = "Your string";
    Regex statisticsRegex = new Regex(@"composition(.*)page", RegexOptions.Singleline);
    Match match = statisticsRegex.Match(data);
    if (match.Success)
        Console.WriteLine(match.Groups[1].Value);
    else
        Console.WriteLine("No Match!");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-26
    • 2022-07-06
    • 2017-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多