「空間を占める見えない空白文字」とは何ですか?

「空間を占める見えない空白文字」とは何ですか?

正規表現を使用してUnicode文字を見つけることができます。存在するヤン・ゴイバクのウェブサイト意味が分からない正規表現を見つけました。

\p{Zs}または\p{Space_Separator}: 見えないがスペースを占める空白文字

だから私が正しくやっているのか気になります。Whitespace Character

  • 2つの単語、列、行などの間の「空の」スペース。
  • ホワイトペーパー/スクリーンのみが含まれているので「見えません」。
  • それが占める場所は、文字、記号、または同様のものとして占めることができないため、「空間を占める」。

これから私は次の結論を導きます質問:

  • どこ見える空白文字
  • 空白文字かもしれません 'スペースを取らない'

これは正義と完全に反対です。どちらも完全に理解されていますが、視点に応じて両方を同じことを説明できます。空のスペースは白い紙/画面以外には何も表示されないので見えますが、見えるものがないため見えません。この時点で私は哲学科の境界線を感じる:無の量を相手側で測定する方法など。

答え1

いくつかの古典的なASCIIの見えない空白文字は次のとおりです。

  • ブランド:\t
  • 新しいチーム:\n
  • 入力する:\r
  • ページ変更:\f
  • 垂直タブ:\v

これらすべてはコンピュータでは文字として扱われ、人間には空白として現れる。

他の見えない文字は次のとおりです。

  • リング:\a
  • バックスペースキー:\b

Frostschutzによって提供されたWikipediaの記事の長いリスト。

答え2

PCREソーステストスイートでは:

/^\p{Zs}/8
    \ \
    \x{a0}
    \x{1680}
    \x{180e}
    \x{2000}
    \x{2001}

だから...少なくとも空白、改行なしの空白、五間空白マーカー、モンゴルのコレクションの区切り記号、enクワッド、emクワッドが含まれますか?

Python 3による正規表現を使用する\ p {Zs}の意味https://pypi.python.org/pypi/regex(標準のPythonは\ p {Zs}を理解していません:

$ python3
Python 3.2.3 (default, Mar 23 2013, 23:30:23) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import regex
>>> import sys
>>> allofunicode=''.join([c for c in map(chr, range(sys.maxunicode+1))])
>>> regex.findall(r'\p{Zs}', allofunicode)
[' ', '\xa0', '\u1680', '\u180e', '\u2000', '\u2001', '\u2002', '\u2003', '\u2004', '\u2005', '\u2006', '\u2007', '\u2008', '\u2009', '\u200a', '\u202f', '\u205f', '\u3000']

(申し訳ありませんが、コードは変です。Perlではできますが、Perlは非常に錆びました。:P)

関連情報