나만의 캐릭터 클래스 구축

나만의 캐릭터 클래스 구축

스크립트에서 나만의 캐릭터 클래스를 구성한 다음 이를 수정(및 사용)하고 싶습니다. 예를 들면 다음과 같습니다.

  1. [:myclass:]포함하다 a, *,\n (개행 문자로)그리고 [WHITESPACE].
  2. [:myclass:]from 에 모든 문자를 추가하고 싶습니다 [:alnum:].
  3. p캐릭터와 클래스 전체를 삭제하고 싶습니다 .[:upper:][:myclass:]

선호되는 솔루션은 스크립팅 언어에 의존하지 않습니다. 원하신다면 를 이용해 주세요 bash.


보너스 질문: 이것을 시스템 전체에 어떻게 저장할 수 있나요? 시작할 때마다 [:myclass:]사용할 수 있어야 합니다.

답변1

문자 클래스 목록이 C 라이브러리(예: GNU libc, function build_charclass) 에 하드코딩되어 있는지 걱정됩니다.posix/regcomp.c). 이를 확장하는 유일한 방법은 C 라이브러리를 다시 컴파일하는 것입니다.

로케일 정의에서 각 기존 클래스의 내용을 사용자 정의할 수 있습니다.

대부분의 경우 정규식을 문자열로 작성하는 것만으로도 충분합니다.

myclass='a*[:alnum:][:space:]'
regexp="[$myclass]"

이 방법으로는 카테고리에서 문자를 뺄 수 없습니다. ]또는 를 추가하는 경우 언어 정규식에서 문자 클래스의 구문을 존중 -해야 합니다 .\

관련 정보