0

私の問題の正規表現を探しています。たとえば、次のようなテキスト (製品の仕様) があります。

length: 20cm; height: 10cm; «Night» mode: yes; manufacturer : Sony© manual : yes

最終結果は次のようになります

<tr><td>length</td><td>20cm</td></tr>
...
<tr><td>manufacturer</td><td>Sony&copy;</td></tr>

":" + whitespace characters(\s*)したがって、 for"</td><td>"";" + whitespace characters(\s*)forを置き換える必要がありますが、 の前にラテン記号と記号"</td></tr><tr><td>"がある場合はそうではありません。ポイントは &_nbsp; のような html 文字にあります。&_laquo; 「;」を含む&_copyなど[a-z]+&;

言い換えれば:\s*、そうではありません&[a-z]+[;]

これどうやってするの?

smarty での私の正規表現は次のようになります: " |regex_replace:"/[:]\s*/":""|regex_replace:"/[;]\s*/":"" " したがって、唯一のことは html を削除することですchars ... (?!...) といくつかの組み合わせを試しましたが、成功しませんでした 3 文字に一致するこの RegExp のようなものを探して います。

4

3 に答える 3

0

どうですか:

$str = 'length: 20cm; height: 10cm; &laquo;Night&raquo; mode: yes;&nbsp;manufacturer : Sony&copy; manual&nbsp;:&nbsp;yes';
$str = preg_replace('#(?!&[a-z]+); #', '</td></tr><tr><td>', $str);
$str = preg_replace('#: #', '</td><td>', $str);
于 2013-08-23T13:50:22.727 に答える