답변:
문자 클래스를 사용할 수 있습니다 .
/[^\s\\]/
공백 문자 나 \
. 다음은 또 다른 예입니다.
[abc]
수단 "일치 a
, b
또는 c
"; [^abc]
수단 "를 제외한 모든 문자와 일치 a
, b
또는 c
"을.
$0~/\s*^\s/
흰색 공백이 아닌 모든 문자 다음에
/^\s+/
-줄의 시작과 하나 이상의 공백 문자가 와야합니다.
g
수정자를 추가하십시오 . /[^\s\\]/g
미리보기를 사용할 수 있습니다.
/(?=\S)[^\\]/
/(?=\S)\W/
THIS IS A TEST, AND AGAIN
. 다음은 나를 위해 잘 작동했습니다 (?=\S)[^"]*
.
이것은 sed를 사용하여 나를 위해 일했습니다. [ 편집 : 아래의 주석은 sed가 \ s를 지원하지 않음을 지적합니다.]
[^ ]
동안
[^\s]
하지 않았다
# Delete everything except space and 'g'
echo "ghai ghai" | sed "s/[^\sg]//g"
gg
echo "ghai ghai" | sed "s/[^ g]//g"
g g
\s
공백 문자 이상을 찾습니다. 여기에는 TAB, 줄 바꿈 캐리지 리턴 등이 포함됩니다 ( 정규식 특징에 따라 다른 개수가 달라짐). Perl의 발명품으로, 원래 POSIX 문자 클래스의 약자 [:space:]
이며 sed
. 위의 첫 번째 정규식은 s/[^[:space:]g]//g
.
echo "ghai ghai" | sed "s/[^[:space:]g]//g"
수익률 :g g
내 시스템 : CentOS 5
\s
컬렉션 외부에서 사용할 수 있지만 [:space:]
컬렉션 내부 에서 사용해야 합니다. 사실 나는 [:space:]
컬렉션 내부에서만 사용할 수 있습니다 . 그래서 이것을 사용하여 단일 공간을 일치시키기 위해 나는 [[:space:]]
정말로 이상합니다.
echo a b cX | sed -r "s/(a\sb[[:space:]]c[^[:space:]])/Result: \1/"
Result: a b cX
\s
[[:space:]]
[^[:space:]]
이 두 가지는 작동하지 않습니다.
a[:space:]b instead use a\sb or a[[:space:]]b
a[^\s]b instead use a[^[:space:]]b
([^[:space:]])
대신 ([^\s])
. 저는 openSUSE Tumbleweed 2018 04 03에 있습니다.
^
부정 으로 해석되고 언제 줄 시작으로 해석됩니까? 그런 점에서, 왜이 공백의 숫자로 시작하는 라인을 일치 실 거예요$0~/\s*^\s/