2P by neo 2023-09-12 | favorite | 댓글 1개
  • 이 기사는 두 정규 표현식(regexes)의 차이와 교집합을 계산하는 방법에 대해 논의합니다.
  • 저자는 α < β = false, α = β = true, α > β = false, α & β = α ^ β = ∅, α - β = ∅ 등의 방정식과 결과를 제공하여 과정을 보여줍니다.
  • 또한 이 기사에는 다음과 같은 정규 표현식 문법에 대한 간략한 소개가 포함되어 있습니다:
    • '.'는 어떤 단일 문자와도 일치
    • 'xy'는 연결: x와 그 다음에 y와 일치
    • 'x|y'는 대체: x 또는 y와 일치
    • 'x*'는 클린 스타: x를 0번 이상 일치
    • '(xyz)'는 그룹화: xyz를 단일 항목으로 취급
    • '()'는 빈 정규 표현식으로 빈 문자열과 일치
    • 'x+'는 클린 플러스: x를 1번 이상 일치
    • 'x?'는 선택적: 선택적으로 x와 일치
    • 'x{n}'는 거듭제곱: x를 n번 자신에게 연결
    • 'x{m,n}'는 반복: x를 m번에서 n번까지 자신에게 연결
    • '[a-z0-9]'는 그룹화: 그룹 내의 어떤 단일 문자와도 일치
    • '[^a-z0-9]'는 부정 그룹화: 그룹 내의 문자가 아닌 어떤 단일 문자와도 일치
    • '\c'는 이스케이프: 특수 문자 c와 일치
    • '\u001a'는 유니코드 이스케이프: 해당 UTF-16 문자와 일치
    • 'a, b, c'는 모든 기타 문자가 자신과 일치합니다.
  • 이 기사에서는 앵커, 제로 너비 주장, 후방 참조, 하위 그룹 추출, 검색 또는 부분 일치, 행동을 변경하는 기타 플래그와 같은 지원되지 않는 기능에 대해서도 언급합니다.
  • 자세한 정보를 위해 저자는 'antimirov'의 GitHub 페이지를 참조하라고 언급합니다.
  • 이 기사의 저자는 트위터와 마스토돈에서 @d6로 알려진 Eiríkr Åsheim입니다.
Hacker News 의견
  • 본 기사는 두 정규 표현식(regexes)의 차이와 교집합을 계산하는 도구에 대해 논의한다.
  • 사용자들은 숫자가 3으로 나누어지는 것을 필터링하는 등의 복잡한 regexes를 처리하려고 할 때 도구가 멈출 수 있다고 보고했다.
  • 이 도구는 이메일 주소나 URL과 같은 특정 유형의 문자열을 검증하는 데 유용한 문자열 클래스 계층을 생성하는 데 사용될 수 있다.
  • 한 사용자는 regex를 다양한 형태로 파싱하고 최종적으로 다양한 언어의 코드를 출력하는 과정을 보여주는 유사한 웹 데모를 만들었다.
  • 정규 표현식은 복잡한 수학 이론을 선형 대수학과 유사한 실용적인 인터페이스로 묶어주는 능력을 인정받았다.
  • 일부 사용자들은 도구가 생성하는 합집합과 교집합 regexes의 복잡성에 놀랐으며, 최소한의 정규 표현식을 생성하는 것이 더 큰 도전일 수 있다고 제안했다.
  • 이 도구는 주어진 regexes에 대한 Deterministic Finite Automaton(DFA)의 그래픽 표현을 제공하며, 사용자들은 이를 인상적이라고 평가했다.
  • 일부 사용자들은 도구가 구문적으로 유효한 URL과 이메일 주소를 위한 regexes를 처리하는 데 어려움을 겪었다고 발견했다.
  • 모바일 장치에서 사용성을 향상시키기 위해 regex 입력 필드에서 자동 제안 기능을 끄는 것이 제안되었다.
  • 한 사용자는 "IP RegEx 필터" 설정에 대한 검증 로직을 작성하기 위해 regex 교집합 개념을 사용한 경험을 공유했으며, 이는 필터가 작동하지 않는다는 사용자의 불만을 방지하는 데 도움이 되었다.