스크립트에서 나만의 캐릭터 클래스를 구성한 다음 이를 수정(및 사용)하고 싶습니다. 예를 들면 다음과 같습니다.
[:myclass:]
포함하다a
,*
,\n
(개행 문자로)그리고[WHITESPACE]
.[:myclass:]
from 에 모든 문자를 추가하고 싶습니다[:alnum:]
.p
캐릭터와 클래스 전체를 삭제하고 싶습니다 .[:upper:]
[:myclass:]
선호되는 솔루션은 스크립팅 언어에 의존하지 않습니다. 원하신다면 를 이용해 주세요 bash
.
보너스 질문: 이것을 시스템 전체에 어떻게 저장할 수 있나요? 시작할 때마다 [:myclass:]
사용할 수 있어야 합니다.
답변1
문자 클래스 목록이 C 라이브러리(예: GNU libc, function build_charclass
) 에 하드코딩되어 있는지 걱정됩니다.posix/regcomp.c
). 이를 확장하는 유일한 방법은 C 라이브러리를 다시 컴파일하는 것입니다.
로케일 정의에서 각 기존 클래스의 내용을 사용자 정의할 수 있습니다.
대부분의 경우 정규식을 문자열로 작성하는 것만으로도 충분합니다.
myclass='a*[:alnum:][:space:]'
regexp="[$myclass]"
이 방법으로는 카테고리에서 문자를 뺄 수 없습니다. ]
또는 를 추가하는 경우 언어 정규식에서 문자 클래스의 구문을 존중 -
해야 합니다 .\