この文字のような Unicode スペースをトリミングしようとしていますが、このソリューションを使用してそれを行うことができました。この解決策の問題は、通常の文字間の Unicode スペースがトリミングされないことです。たとえば、これは薄いスペースを使用します
リーリー私は正規表現について少し知っているので、この問題を解決するために表現をどのように変更すればよいのかわかりません
P粉5579579702023-11-14 00:59:08
文字列の先頭と末尾にある制御文字を含む Unicode 空白をすべて削除し、文字列内の通常のスペースを除く制御文字を含むすべての Unicode 空白を削除するには、
を使用します。 リーリー「正規表現のデモ #1」および「正規表現 デモ #2」を参照してください。 ######詳細######
^[\pZ\pC] - 文字列
の先頭に 1 つ以上のスペースまたは制御文字 - または
- 文字列の末尾に 1 つ以上のスペースまたは制御文字
- または
- 文字列
内の任意の場所に 1 つ以上のスペースまたは通常のスペース以外の制御文字
- 通常の空白 (
\x20
一般的な改行も「除外」する必要がある場合は、(?! )[\pZ\pC]
を @MonkeyZeus による提案)、2 番目の正規表現では、
[^\S \r\n] を使用する必要があることを意味します。
PHP デモを見る :
リーリー
P粉4457509422023-11-14 00:22:00
このような Unicode スペース \u{2009} がさまざまな場所でどのように問題を引き起こす可能性があるか。 したがって、すべての Unicode スペースを通常のスペースに置き換えてから、trim() を適用します。
リーリー注: コメント内の文字列は debug::writeUni($string, $trimString); で表されます。 このクラス から実装されます。