정규식을 사용하여 유니코드 문자를 찾을 수 있습니다. 존재하다얀 고이박 웹사이트의미를 이해하지 못하는 정규식을 찾았습니다.
\p{Zs}
또는\p{Space_Separator}
: 보이지 않지만 공간을 차지하는 공백 문자
그래서 제가 제대로 하고 있는 건지 궁금해요 :aWhitespace Character
- 두 단어, 열, 행 등 사이의 "빈" 공간입니다.
- 흰 종이/스크린만 포함되어 있기 때문에 "보이지 않습니다".
- 그것이 차지하는 위치는 문자, 기호 또는 이와 유사한 것으로 점유될 수 없기 때문에 "공간을 차지합니다".
이것으로부터 나는 다음과 같은 결론을 도출한다질문:
- 어디'보이는공백 문자'
- 공백 문자일 수 있습니다'공간을 차지하지 않습니다'
이는 정의와 완전히 반대입니다. 둘 다 완벽하게 이해되지만 관점에 따라 둘 다 같은 것을 설명할 수 있습니다. 빈 공간은 흰 종이/화면 외에는 아무것도 표시되지 않기 때문에 보이지만 볼 수 있는 것이 없기 때문에 보이지 않습니다. 이 시점에서 나는 철학과의 경계선을 느낀다: 무(無)의 양을 상대편으로 측정하는 방법 등.
답변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)