일부 특수 문자는 이스케이프 문자가 앞에 오는 경우에만 허용됩니다.

Aug 18 2020

나는 구성 할 (OCaml의 같은 구문 더와 함께, 렉스의 스타일) 정규 표현식을 문자열의 클래스를위한 4 자 [, ], #, '그들이 이스케이프 문자가 선행하는 경우에만 사용할 수 있습니다' .

다음은 몇 가지 유효한 예입니다.

  • '#Data, abc'#Headers, abc'#Totals'[efg, 123'#Totals']efg, abc,123

다음은 유효하지 않은 몇 가지 예입니다.

  • #Data, abc#Headers, abc#Totals[efg, 123#Totals]efg,'#Totals[efg

정의가 명확하기를 바랍니다. 첫째, 그러한 정규식을 구성하는 방법을 아는 사람이 있습니까? 둘째, ocamllex에서 허용 할 수 있는 정규 표현식 (lex 스타일, OCaml과 유사한 구문) 을 구성하는 방법을 아는 사람이 있습니까?

답변

JeffreyScofield Aug 18 2020 at 08:01

허용되는 문자열이 몇 가지 예 외에 다른 것처럼 보인다고 말하지 않습니다. 구체적으로 소문자와 숫자가 허용되고 4 개의 특수 문자는 앞에 오는 경우에만 허용된다고 가정 해 보겠습니다 '.

이것은 36 개의 1 문자 스트링과 4 개의 2 문자 스트링 세트의 Kleene 클로저로 설명됩니다.

다음과 같이 보입니다.

 (['a' - 'z' '0' - '9'] | '\'' ['\'' '#' '[' ']'])*