0

ここの投稿の1つで、この表現を見つけました

    // Replaces every non-letter, non-digit with a dash
    $str = preg_replace('/(?=\P{Nd})\P{L}/u', '-', $str);

それはうまく機能しますが、基本的な句読点とスペースも保持するにはどうすればよいですか?

私はこのようなことを試しました

    $str = preg_replace('/(?=\P{Nd})\P{L}\P{P}/u', '-', $str);

また

    $str = preg_replace('/[^\P{Nd}\P{L}\P{P}$]/u', '-', $str);

また

    $str = preg_replace('/[\P{Nd}\P{L}\P{P}]/u', '-', $str);

そして何も機能しません。

4

1 に答える 1

0

どうですか:

[^\p{N}\p{L}\p{P}\s]

利用方法:

$str = preg_replace('/[^\p{N}\p{L}\p{P}\s]/u', '-', $str);
于 2013-03-24T09:12:25.627 に答える