온톨로지 정규식 검색
Workshop의 Filter List나 Object Explorer의 검색창에서 문자열 패턴으로 객체(Object)를 검색할 수 있습니다. 온톨로지(Ontology)의 정규식은 일반 정규식과 일부 규칙이 다릅니다.
속성 설정과 일치 범위
문자열 속성(Property)을 정규식 검색용으로 인덱싱해야 합니다. Ontology Manager에서 객체 유형의 Properties를 열고 해당 속성의 Interaction에서 Enable regex queries를 설정합니다.
패턴은 필드 값 전체와 일치해야 합니다. 인덱스가 완전한 문자열을 분석하지 않은 한 값으로 보관하기 때문입니다. cat은 cat과 일치하지만 concatenate와는 일치하지 않습니다. 문자열 일부를 찾으려면 .*cat.*처럼 앞뒤에 .*를 둡니다.
시작과 끝은 이미 일치 범위에 포함되므로 ^와 $ 앵커를 지원하지 않습니다. 문자 집합 안에서 사용하는 부정 기호 ^는 별도 규칙입니다.
연산자
| 패턴 요소 | 동작과 예 |
|---|---|
. | 문자 하나와 일치합니다. c.t는 cat, cot와 cut에 일치합니다. |
? | 앞 문자를 0번 또는 1번 허용합니다. colou?r는 color와 colour에 일치합니다. |
+ | 앞 문자를 1번 이상 반복합니다. go+d는 god, good와 goood에 일치하며 gd에는 일치하지 않습니다. |
* | 앞 문자를 0번 이상 반복합니다. go*d는 gd, god, good와 goood에 일치합니다. |
{2} | 앞 문자를 정확히 두 번 반복합니다. go{2}d는 good에 일치합니다. |
{2,} | 앞 문자를 두 번 이상 반복합니다. |
{2,4} | 앞 문자를 두 번부터 네 번까지 반복합니다. go{2,4}d는 good, goood와 gooood에 일치합니다. |
() | 여러 문자를 묶어 연산자를 적용합니다. (un)?happy는 happy와 unhappy에 일치합니다. |
[] | 괄호 안 문자 하나와 일치합니다. gr[ae]y는 gray와 grey에 일치합니다. |
"" | 안의 문자열을 리터럴로 취급합니다. "v2.0"은 v2.0에 일치합니다. 따옴표 없는 v2.0은 v2X0이나 v200에도 일치할 수 있습니다. |
\ | 연산자를 이스케이프합니다. example\.com은 example.com에 일치하고 exampleXcom에는 일치하지 않습니다. |
OR 연산자 |는 두 패턴 중 하나와 일치합니다. cat|dog는 cat 또는 dog에 일치합니다.
문자 집합의 -는 범위를 지정합니다. [a-z]는 소문자, [0-9]는 숫자, [A-Za-z]는 영문 대문자와 소문자입니다. 첫 위치의 ^는 집합을 부정하므로 [^0-9]는 숫자가 아닌 문자 하나에 일치합니다. 하이픈을 첫 위치에 두거나 역슬래시로 이스케이프하면 문자 자체로 취급합니다.
축약 문자 클래스
| 표현 | 일치 범위 |
|---|---|
\d | 0부터 9까지의 숫자 한 문자 |
\D | 숫자가 아닌 문자 |
\s | 공백, 탭과 줄바꿈 등의 공백 문자 |
\S | 공백 문자가 아닌 문자 |
\w | 영문 대소문자, 숫자 또는 밑줄 |
\W | 위 단어 문자에 해당하지 않는 문자 |
예를 들어 \d{3}-\d{4}는 555-1234와 800-5678에 일치합니다. \w+\s\w+는 hello world나 John Smith처럼 공백 문자 하나로 구분한 두 단어에 일치합니다.