私はこれをやろうとしましたが、正規表現を吸うだけです。私が必要としているのは、1番目、3番目、9番目を1番目、3番目、9番目に置き換える正規表現を作成することです。文字または数字で。<sup>
</sup>
1381 次
3 に答える
5
これは些細なことなので、必要なコンポーネントを提供します。
(?<=\d)
現在の位置の直前にある番号の存在をチェックします。
(A|B|C)
現在の位置にある正規表現A、B、またはCのいずれかをチェックします。
そして、それはあなたが必要とするすべてです。
于 2012-11-17T22:45:08.967 に答える
1
このコードを試してください:
$string = "bla 1st bla 2nd bla 3rd bla 5th 9thSomethingNotToBeReplaced ";
echo preg_replace('/(\d)+(st|nd|rd|th)([^\w\d]|$)/', '$1<sup>$2</sup>$3', $string);
于 2012-11-17T22:51:26.497 に答える
0
'2nd'も処理したいと思います。
$string = '1st, 2nd, 3rd and 9th';
echo preg_replace_callback('/1st|2nd|3rd|[4-9]th/', function($m){
return $m[0]{0} . '<sup>' . substr($m[0], 1) . '</sup>';
}, $string);
// 1<sup>st</sup>, 2<sup>nd</sup>, 3<sup>rd</sup> and 9<sup>th</sup>
于 2012-11-17T22:50:44.937 に答える