【问题标题】:Regular Expression to get content in statement正则表达式获取语句中的内容
【发布时间】:2014-07-10 05:27:54
【问题描述】:

示例:我的 HTML 代码如下,

<p ><strong>PM Narendra Modi visits BJP headquarters</strong>[youtube-video id='XHDUCalVmis' width='640' height='360' ]</p><hr />

这里我只想选择

[youtube-video id='XHDUCalVmis' width='640' height='360' ]

部分。认为正则表达式会奏效。

【问题讨论】:

    标签: html css regex youtube


    【解决方案1】:

    最简单的,这个正则表达式会匹配你的字符串:

    \[[^\]]+\]
    

    说明

    • \[ 匹配左括号
    • [^\]]+ 匹配一个或多个不是右括号的字符
    • \] 匹配右括号

    【讨论】:

    • 感谢zx81的快速回复。会尝试你的建议。
    • 非常欢迎您,让我知道它是否有效,如果您有任何问题。 :)
    • 对不起,试过了,但它不起作用 :( 仅没有输出。这是我正在尝试使用的 php 代码 PM Narendra Modi 访问 BJP 总部 [youtube-video id='XHDUCalVmis' width='640' height='360' ]
      "; preg_match_all('[[^]]+]', $pgm_time, $matches ); print_r($matches); ?>
    • 您在preg_match_all 中缺少正则表达式分隔符(我们使用~)(看起来反斜杠也缺少,除非这是评论表单的问题):尝试$matchcount = preg_match_all("~\[[^\]]+\]~", $pgm_time, $matches); 让我知道是否这样做。 :)
    • 嗨 Z881,它按预期工作:) 非常感谢您抽出宝贵时间.. 我必须通过正则表达式教程:(:D
    【解决方案2】:

    简短回答: 正则表达式:.*?(\[.+\])
    捕获第 1 组,将获得方括号部分。

    如果您需要更详细的答案,请提供更多信息。

    p/s:This site 是一个很棒的正则表达式教程,我建议通读一遍。

    【讨论】:

    • 感谢 MikeNQ 的​​快速回复和建议。
    猜你喜欢
    • 1970-01-01
    • 2011-02-11
    • 2011-11-11
    • 2015-12-10
    • 2011-04-12
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多