0

我有字符串,想用 PHP 解析它们以插入一些适当的样式标签。

示例字符串(不要问意义):

Lorem Ipsum 1.39 (+10% Taxes) Dolor Sit Amet 500 (+50% More) Lorem Ipsum 1.99 (+20% Stupid Taxes) and one more number 123 (+10/20/30% Taxes) Period.

在这个例子中,我总是想找到带有模式的部分(+<number> <text>)并将其包装到<span>-Tag 中以进行样式设置。我想搜索<text>关键字(在此示例中:taxesmore)以找出要应用的样式。上面的示例字符串应变为:

Lorem Ipsum 1.39 <span class="taxes">(+10% Taxes)</span> Dolor Sit Amet 500 <span clas="more">(+50% More)</span> Lorem Ipsum 1.99 <span class="taxes">(+20% Stupid Taxes)</span> and one more number 123 <span class="taxes">(+10/20/30% Taxes)</span> Period.

做这个的最好方式是什么?我不确定是否preg_replace()可以这样做(如果正则表达式不是最好的方法)。<text>(这里:taxes和)的关键字more是预定义的,可以硬编码。

4

1 回答 1

1

尝试:

preg_replace_callback('/\(\+[\/\d]+% ([^)]+)\)/', function($matches) {
  // Make a valid class identifier
  $class = str_replace(' ', '-', strtolower($matches[1]));
  // Wrap everything in a <span>
  return "<span class='$class'>{$matches[0]}</span>";
}, $string);
于 2013-08-31T06:26:28.837 回答