【问题标题】:PHP regular expression to filter attribute from tagPHP正则表达式从标签中过滤属性
【发布时间】:2016-03-31 19:16:11
【问题描述】:

我使用 PHP 脚本将一些自定义标签转换为有效的 Bootstrap 标签,因为我需要将它们放在许多脚本中,并且只需要一个地方来管理设置。

转换例如<well><div class="well"> 很简单,但是如果我想将<well title="hello"> 转换为<div class="well"><h4>hello</h4> 应该有什么模式呢?

所以我需要能够识别具有可以具有任何值的属性的标记,但我也需要具有该值。一旦事情变得更复杂一点,正则表达式对我来说仍然是一个谜......

谢谢!

【问题讨论】:

  • 如何区分自定义标签和常规标签?
  • @noob:我避免使用常规标签..
  • 除了title 之外可能还有更多属性?如果是,如何处理他们的价值观?
  • 您只需要在要重用的模式周围使用(...) 并使用对它的反向引用。说,<win\s+title="([^"]*)"> -> <div class="well"><h4>$1</h4>
  • @Wiktor:我更喜欢你的解决方案而不是下面的解决方案,这对我来说是正确的答案!谢谢!

标签: php jquery regex


【解决方案1】:

它不是很动态,但适用于这个特定的例子......这是你需要的吗?

$re = "/\\<([\\w]+) ?(([\\w]+)\\=\\\"([\\w]+)\\\")\\>/"; 
$str = "<well title=\"hello\">";
preg_match($re, $str, $matches);
print_r($matches);
$new_tag = '<div class="'.$matches['1'].'"><h4>'.$matches[4].'</h4></div>';
echo "\n".$new_tag;

【讨论】:

  • 谢谢,但 Wiktor 提出的解决方案更适合我的代码(恕我直言)
猜你喜欢
  • 2011-01-08
  • 1970-01-01
  • 2013-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多