Programming

특정 문자를 제외하고 공백이 아닌 문자를 일치시키는 방법은 무엇입니까?

procodes 2020. 8. 23. 20:36
반응형

특정 문자를 제외하고 공백이 아닌 문자를 일치시키는 방법은 무엇입니까?


Perl에서는 \S공백이 아닌 문자와 일치합니다.

백 슬래시를 제외하고 공백이 아닌 문자를 어떻게 일치시킬 수 \있습니까?


문자 클래스를 사용할 수 있습니다 .

/[^\s\\]/

공백 문자 나 \. 다음은 또 다른 예입니다.

[abc]수단 "일치 a, b또는 c"; [^abc]수단 "를 제외한 모든 문자와 일치 a, b또는 c"을.


미리보기를 사용할 수 있습니다.

/(?=\S)[^\\]/

이것은 사용하는 나를 위해 일한 나오지 [ 편집 : 나오지 종료 지점 아래의 코멘트가 지원하지 않는 \ 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

내 시스템 : 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:]]
  • "공백없이"와 XI 일치 [^[:space:]]

이 두 가지는 작동하지 않습니다.

a[:space:]b  instead use a\sb or a[[:space:]]b

a[^\s]b      instead use a[^[:space:]]b

참고 URL : https://stackoverflow.com/questions/6125098/how-to-match-any-non-white-space-character-except-a-particular-one

반응형