메타 정규식 골프의 다른 종류


42

주의 사항 : 대중의 요구에 따라 규칙을 약간 완화했습니다.

  • 최대 정규 표현식 크기는 5 개의 응답마다 1 바이트 증가 합니다 . 답 N 은 최대 29 + ⌈N / 5⌉ 바이트 를 사용할 수 있습니다 .
  • 각 답변의 점수는 (M / (30 + N / 5)) N입니다.

정규식 골프에서는 두 세트의 문자열이 주어지며 첫 번째 세트의 모든 문자열과 일치하지만 두 번째 세트의 모든 문자열에서 실패하는 가장 짧은 정규식을 작성하라는 메시지가 표시됩니다.

그것이 우리가 할 일이지만, 누군가 대답 할 때마다 정규 표현식 자체가 두 가지 문자열 중 하나에 추가됩니다 (자신의 선택). 따라서이 과제에 대한 답변을 엄격히해야합니다.

예를 들어 봅시다 :

  • 이걸로 시작한다고 말하고 일치 세트 abc에 넣습니다 .
  • 그런 다음 a위와 일치하므로 유효한 두 번째 대답은입니다 (그리고 아직 실패해야 할 문자열이 없습니다). 이 답변이 실패 세트 에 들어간다고 가정하십시오 .
  • 이제 세 번째 답변은 일치해야 abc하지만 실패합니다 a. 따라서 가능한 세 번째 대답은 b입니다. 이것을 경기 세트 에 넣겠습니다 .
  • 네 번째 대답은 지금은 일치해야 abc하고 b, 그러나에 실패 a. 중복 답변을 허용하지 않으므로 유효한 정규 표현식은입니다 c|b.

중요한 것은 대답이 가능한 짧아야한다는 것입니다. 처음 몇 가지 대답에는 사소한 것이지만, 몇 가지 대답을 얻으면 가능한 한 적은 문자로 원하는 일치 항목을 얻는 것이 점점 어려워집니다.

실제 챌린지의 경우 처음에 일치 세트에 포함 PPCG되고 실패 세트에 포함되어 [PPCG]있으며 이미 첫 번째 답변을 제공했습니다.

응답

이 과제에 대해 이해해야 할 핵심은 한 번에 한 사람 만 답변 할 수 있으며 각 답변은 그 전의 답변에 달려 있다는 것 입니다.

같은 두 개의 답변이 없어야합니다 N. 두 사람이 일부 N에 대해 동시에 답변 하면 나중에 답변 한 사람 (몇 초 차이가 있더라도)은 은혜롭게 답변을 삭제해야합니다.

이 과정을 조금 더 매끄럽게하려면 답을 게시 할 때 다음 단계를 따르십시오.

  • 누군가가 이전 답변의 정확성을 독립적으로 확인했는지 확인하고 해당 의견을 남겼는지 확인하십시오.
  • 이전 답변에서 찾은 두 가지 테스트 세트를 가져 와서 한 세트의 모든 문자열과 일치하고 다른 세트에는없는 정규식을 작성하십시오.
  • 다음 형식으로 답변을 게시하십시오.

    # N. [regex flavour] - [regex size in bytes]
    
        [regex]
    
    [link to online regex tester]
    
    [notes, explanation, observations, whatever]
    
    ### The next answer has to match the following strings:
    
        [match set]
    
    ### And fail on these strings:
    
        [fail set]
    

    N답의 수는 어디에 있습니까 ? 복사하시기 바랍니다 [match set][fail set]이전의 대답에서, 그리고에 정규식을 추가 그들.

    이것은 도전에 절대적으로 중요합니다! 부기와 관련하여 도움을 줄 수있는 대시 보드 도구를 제공했으며 위의 템플릿을 사용합니다. (포스트 하단 참조)

  • 다른 사용자가 제출 한 내용을 검토하고 답변이 모든 규칙 (아래 참조)을 준수하는 경우 "수정 확인"이라는 메모를 남기십시오. 그렇지 않은 경우, 결함을 지적하는 주석을 남겨야합니다. 그런 다음 15 분 안에 해당 문제를 해결해야합니다. 그렇지 않으면 답변이 유효하지 않은 것으로 간주되어 삭제되어야하며 다른 사람이 이전 답변에 대한 후속 답변을 게시 할 수 있습니다. (이러한 경우 언제든지 새 답변을 제출할 수 있습니다.)

이러한 규정은 다소 엄격한 것처럼 보일 수 있지만 체인의 어딘가에 잘못된 답변을 피하기 위해 필요합니다.

규칙

  • 사용자는 4 시간마다 하나의 답변 만 제출할 수 있습니다. (이는 사용자가 지속적으로 질문을보고 최대한 많이 답변하지 못하도록하기위한 것입니다.)
  • 사용자는 두 개의 답변을 한 번에 제출할 수 없습니다. (예 : 답변 1을 제출 한 후 답변 2는 할 수 없지만 3은 할 수 있습니다.)
  • 확인 된 답변을 편집하지 마십시오. (단축 방법을 찾더라도!)
  • 체인에서 초기 에 실수가 발견 되면 (즉, 후속 답변이 게시 된 후) 문제가되는 답변을 삭제하고 새 제출이 실패 할 문자열 세트에서 제거됩니다. 그러나 이후에 게시 된 모든 답변 을 반영하도록 변경 해서는 안됩니다 .
  • 정규 표현식이 유효한 하나의 맛을 명확하게 설명하십시오. 온라인에서 자유롭게 테스트 할 수있는 맛을 선택할 수 있습니다. StackOverflow에 대한 온라인 테스터 목록이 많이 있습니다 . 특히 Regex101RegexPlanet 은 다양한 향미를 지원하므로 유용합니다. 답변에 선택한 테스터에 대한 링크를 포함하십시오. 온 전환하여 global 및 m테스터에 ultiline 수정, 한 번에 모든 문자열을 테스트 할 수 있습니다, 각 행에 하나 (그들은 개인 문자열을 필요로하지 않기 때문에 이러한 수정, 당신의 정규식 크기으로 계산되지 않습니다).
  • 정규식은 비워 둘 수 없습니다.
  • 응답 N 에 대한 정규식은 29 + ⌈N / 5⌉ 바이트를 초과하지 않아야 합니다. 즉, 답변 1 ~ 5는 최대 30 바이트 (포함)를 사용할 수 있고, 답변 6 ~ 10은 최대 31 바이트를 사용할 수 있습니다 ... 답변 31 ~ 35는 최대 36 바이트를 사용할 수 있습니다. 다음 답변에서 사용할 수있는 문자 수를 확인하려면 대시 보드를 확인하십시오.
  • 정규식은 두 테스트 세트의 문자열과 동일해서는 안됩니다.
  • 관련 호스트 언어에서 사용하더라도 제출 또는 바이트 수에 구분 기호를 포함하지 마십시오. 정규식에서 수정자를 사용하는 경우 수정 자당 1 바이트를 정규식 크기에 추가하십시오. 예를 들어 /foo/i4 바이트입니다.

채점

각 답변의 점수는 (M / (30 + N / 5)) N 으로 계산되며 , 여기서 M 은 정규식 크기 (바이트)이고 N 은 숫자입니다. 각 사용자의 점수는 모든 답변의 결과입니다. 전체 점수가 가장 낮은 사용자가 승리합니다. 가능성이 거의없는 경우, 최신 제출을 가진 사용자가 승리합니다. 해당 사용자의 최신 답변을 수락합니다.

합산 점수를 선호하는 경우 각 답변의 점수를 N * (log (M)-log (30)) 로 계산하고 모든 답변에 대해 합계를 계산할 수 있습니다 . 그것은 같은 순위표 순서를 줄 것입니다.

답에 답의 점수를 포함시킬 필요는 없으며 M 만보고하면 됩니다. 질문의 맨 아래에있는 챌린지 대시 보드는 점수를 계산하며, 매우 가까운 점수가 두 개인 경우 임의 정밀도 유형을 사용하여 결과를 다시 확인합니다.

각 답변의 점수는 1 미만이므로 새 답변을 제공하여 전체 점수를 향상시킬 수 있습니다. 그러나 각 제출물이 짧을수록 점수를 더 효율적으로 낮출 수 있습니다. 또한 지수가 높아짐에 따라 나중의 답변은 더 길지만 더 낮은 점수를 얻을 수 있습니다.

계기반

여기 에서 Optimizer의 작업을 기반으로 Stack Snippets를 사용하여 작은 대시 보드 도구를 작성했습니다 . 이것이 답변에 따른 도전 과제를 해결하는 데 도움이되기를 바랍니다.

이것은 챌린지의 현재 상태, 특히 상충되는 답변이 있거나 답변을 확인해야하는 경우 또는 다음 답변을 게시 할 수있는 경우를 표시합니다.

또한 점수가 포함 된 모든 답변 목록과 모든 사용자의 리더 보드를 생성합니다. 대시 보드가 답변에서 관련 문자열을 읽을 수 있도록 위의 챌린지 형식을 따르십시오. 그렇지 않으면 리더 보드에 포함되지 않을 수 있습니다.

버그를 발견하거나 도구의 유용성을 개선 할 수있는 방법에 대한 아이디어가 있으면 알려주십시오 ( 이상적으로는 채팅에서 ).


규칙은 내가 의도 한 것보다 조금 더 엄격한 것으로 판명되었습니다. 채팅에서 약간의 토론을 한 후 현상금이 다 떨어지면 규칙을 약간 완화하는 것을 고려하고 있습니다. 아래에서 생각할 수있는 옵션에 대해 3 개의 의견을 게시하겠습니다. 의견에 투표하여 선호 사항을 표시하십시오.
Martin Ender

2
규칙은 규칙입니다. 변경하지 마십시오. 다른 답변을 게시하는 것이 거의 불가능하다는 것은 부끄러운 일이지만 규칙을 변경하는 것을 정당화하지는 않습니다.
Martin Ender

2
10 개의 응답 마다 추가 바이트를 허용하십시오 . 이에 따라 답 점수를 (M / (30 + N / 10)) ^ N으로 변경하십시오 . 이것은 소급 적용되므로 다음 답변은 최대 32 바이트를 사용할 수 있습니다. 점수 변경은 순위표에서 상위 2 위에는 영향을 미치지 않지만 다른 사용자는 다소 섞입니다.
Martin Ender

8
5 답변 마다 추가 바이트를 허용하십시오 . 이에 따라 답 점수를 (M / (30 + N / 5)) ^ N으로 변경하십시오 . 이것은 소급 적용되므로 다음 답변은 최대 35 바이트를 사용할 수 있습니다. 점수 변경은 순위표에서 상위 2 위에는 영향을 미치지 않지만 다른 사용자는 다소 섞입니다.
Martin Ender

4
당신은 사람들이 이상하고 뒤틀 렸습니다. 왜이 일을 스스로 하시겠습니까? (읽기는 재미 : P)
Joe

답변:


5

42. 파이썬 맛-38

\?[^w$]*\$$|^P|\w.\)|w.?\+|w\^|[^?P]P$

Regex101에서 테스트

마지막 몇 가지 답변에서 엔트로피 부족이 나에게 도달하고있었습니다 ...

다음 답변은 다음 문자열과 일치해야합니다.

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P
^..(.[!)3G^w]|$)|\^.{7}$|G\)
\?[^w$]*\$$|[]^C]\w+$|w\^|\|..\)
\w.\)|\?[^-$]*\$$|[]^C]\w$|w[+^]
[]^C]\w$|\w.\)|-\$|w[+^]|\?[^w$]*\$$

그리고이 문자열에서 실패하십시오.

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\
[[?C(].[-!)|w]|^P|^[^C|\\]*$
[?[CP(].[-<)|w]|^P|^[^C|\\]*$
^..(.{7}$|.[3Gw!^)]|$)|G.?.?\)
^...[3w!G)]|^[^\\C|]*$|G.?.?\)
^[^C\\|]+$|G.\)|\.\)|w\^|^P|\...?]
^P|!.3|w\^|^[^C\\|]+$|\.[)$-](?!.!)
\?[^$w]*\$$|[]C^]\w$|w.]|\w.\)
\$..\\|\?[^w$]*\$$|w\^|[]^C]\w$
[]^C]\w$|\w.\)|w[[+^]|\?[^w$]*\$$
\?[^w$]*\$$|^P|\w.\)|w.?\+|w\^|[^?P]P$

정확성이 확인되었습니다.
Martin Ender

내 프로그램은 45 자 미만의 답을 찾기 위해 고군분투합니다 ...
Vi.

@Vi. 글쎄, 적어도 38 솔루션이 존재한다고 말할 수 있지만 물론 누군가가 더 낮아
지면 흥미로울 것입니다.

11

28. 파이썬 맛-29

\.\)|P[.$?]|w\^|^[^|C\\]*$|^P

Regex101에서 테스트

패스 세트에서 # 4는 실패 세트의 정규 표현식의 하위 문자열이므로 실패 세트의 다른 정규 표현식과 접미사를 공유하기 때문에 아마도 패스 세트의 # 4가 가장 큰 고통 일 것입니다.

다음 답변은 다음 문자열과 일치해야합니다.

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P

그리고이 문자열에서 실패하십시오.

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\

정확성이 확인되었습니다.
Martin Ender 2014

9

24-파이썬 맛-29

^(..[^^].{4,22}\$|[^?]+\w)$|2

여기에서 테스트

다음 답변은 다음 문자열과 일치해야합니다.

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$

그리고이 문자열에서 실패하십시오.

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2

1
정확성이 확인되었습니다.
feersum

8

10. 파이썬 맛-19

^[\w^]*$|!|]P|G]\$$

Regex101에서 테스트되었습니다 .

다음 답변은 다음 문자열과 일치해야합니다.

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$

그리고이 문자열에서 실패하십시오.

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)*[^\\|]*[^\]]$

정확성이 확인되었습니다.
FryAmTheEggman

8

8. ECMAScript 특징-14 바이트

[^?][PG]$|<|PG

데모

다음 답변은 다음 문자열과 일치해야합니다.

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$

그리고이 문자열에서 실패하십시오.

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG

정확성이 확인되었습니다.
FryAmTheEggman

데모 링크를 수정했습니다.
Martin Ender 2013

@FryAmTheEggman이 스크립트는 주석을 읽지 만 "정확도 검증"만을 하위 문자열 (대소 문자 무시) 로만 찾습니다 .
Martin Ender 2014

@ MartinBüttner 감사합니다.
FryAmTheEggman



7

9. 파이썬 맛-28

^[^\\|]*(\\\\)*[^\\|]*[^\]]$

Regex101에서 테스트

다음 답변은 다음 문자열과 일치해야합니다.

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$

그리고이 문자열에서 실패하십시오.

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)*[^\\|]*[^\]]$

또한 1 분 전에 작동하지 않는 것으로 나타났습니다. 일치하는 행에 두 개의 백 슬래시가 필요하므로 플래그가 저장할 수 있다고 생각하지 않습니다.
feersum

으악 .... + 대신 *이어야합니다. 내 답변을 편집
ndc5057

정확성이 확인되었습니다.
FryAmTheEggman

7

23. PCRE 맛-28

([^\\}<]{3}|][^]]|^).?[$PG]$

Regex101에서 테스트되었습니다.

다음 답변은 다음 문자열과 일치해야합니다.

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$

그리고이 문자열에서 실패하십시오.

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$

무엇을 [^]합니까?
feersum

@feersum 대부분의 풍미에서, ]문자 클래스의 첫 번째 요소 인 (선택적 부정 후) ]는 문자 클래스 내부에 있으며 닫히지 않습니다 (빈 문자 클래스는 약간 의미가 없기 때문에). 따라서 [^]]이외의 항목과 일치 ]합니다. 주목할만한 예외는 빈 문자 클래스를 허용하는 ECMAScript입니다. 이 경우 []어떤 것과도 일치하지 않으며 어떤 문자 (?!)와도 [^]일치 하고 일치합니다. ECMAScript에는 s수정자가 없으므로 [\s\S]읽기를 입력하기 가 어렵 기 때문에 편리합니다 .
Martin Ender

정확성이 확인되었습니다.
Martin Ender

7

11. 파이썬-29

^(.{,4}|.{9}|.{16,19}|.{5}P)$

► RegexPlanet에서 테스트

거의 모든 잘못된 답변은 유효한 모든 답변과 길이가 다릅니다. 이 정규식은 그것을 사용합니다.

다음 답변은 다음 문자열과 일치해야합니다.

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$

그리고이 문자열에서 실패하십시오.

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$

정확성이 확인되었습니다.
feersum

7

29. PCRE 맛-28

^..(.[!)3G^w]|$)|\^.{7}$|G\)

Regex101에서 테스트

이 답변은 여전히 ​​작동합니다 ...

다음 답변은 다음 문자열과 일치해야합니다.

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P
^..(.[!)3G^w]|$)|\^.{7}$|G\)

그리고이 문자열에서 실패하십시오.

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\

정확성이 확인되었습니다.
Martin Ender

1
좋은! 전환 금지, 그것이 내가 가진 것입니다
Sp3000

나는 유전자 알고리즘을 사용하여 이것을 계산하려고했지만 30 문자 정규식 만 생성했습니다 ... 다음 답변을 얻기 위해 실행하십시오. 현재 결과-32 자
Vi.

@Vi 유전자 알고리즘, 흥미로운 아이디어 : P
Sp3000

@ Sp3000, 이제 30 자 ... 그러나 다른 답변이 도착 했으므로 다시 시작해야합니다.
Vi.

6

31. 펄 맛-29

[?[CP(].[-<)|w]|^P|^[^C|\\]*$

나는 그것이 어떻게 작동하는지 모른다. 그것은 유전 알고리즘에 대한 나의 첫 번째 진출에 의해 생산되었다 . 이 프로그램 출력 답을 언급하고있다.

다음 답변은 다음과 일치해야합니다.

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P
^..(.[!)3G^w]|$)|\^.{7}$|G\)

그리고 실패 :

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\
[[?C(].[-!)|w]|^P|^[^C|\\]*$
[?[CP(].[-<)|w]|^P|^[^C|\\]*$

정확성이 확인되었습니다.
Martin Ender

Ahaha nice-이전 답변을 인구의 씨앗으로 사용 했습니까? 아니면 이전 답변처럼 보였습니까?
Sp3000

통과 및 실패 문자열은 초기 빌딩 블록으로 사용됩니다. 그들은 현지 최소값으로 인해 얼마 후 금지되었습니다. 프로그램 로그에서 어떻게 진행되는지 확인할 수 있습니다. "metric ="뒤에 괄호 안에있는 숫자는 우리가 얼마나 빨리 진행하고 있는지를 나타내는 척도입니다. 오래 걸리지 않으며 현재 답변을 금지하고 재설정합니다.
Vi.

(그동안 다음 답변에 대한 31 자 후보가 이미 발견되었습니다)
Vi.

아, 한도 증가? 그렇지 29않습니까? 이 방법은 곧 끝나지 않을 것입니다 ... 나는 가장 큰 도전은 마지막 정규식을 찾는 것입니다.
Vi.

6

32. PCRE — 30 ​​바이트

^..(.{7}$|.[3Gw!^)]|$)|G.?.?\)

Regex101에서 테스트

다음 답변은 다음 문자열과 일치해야합니다 .

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P
^..(.[!)3G^w]|$)|\^.{7}$|G\)

그리고이 문자열에서 실패하십시오 :

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\
[[?C(].[-!)|w]|^P|^[^C|\\]*$
[?[CP(].[-<)|w]|^P|^[^C|\\]*$
^..(.{7}$|.[3Gw!^)]|$)|G.?.?\)

1
정확성이 확인되었습니다.
Martin Ender

왜 "실패"목록에 추가됩니까? 이미 실패 했으므로 수정하지 않고 다음 답변으로 사용할 수 있습니다. 각 답변마다 추가 할 목록을 선택할 수 없다고 가정합니다.
Vi.

3
@Vi. 나는의 HWND 추측 느낌 좋은 오늘
SP3000

계속 진행하면서 더 어렵게 만들겠습니다.
hwnd

5

1. ECMAScript 특징-2 바이트

^P

Regex101에서 테스트하십시오.

초기 일치 세트는 PPCG실패 세트 [PPCG]입니다. 따라서이 정규식은 단순히 문자열 시작 하는지 테스트합니다 P.

다음 답변은 다음 문자열과 일치해야합니다.

PPCG
^P

그리고이 문자열에서 실패하십시오.

[PPCG]

3
정확성이 확인되었습니다.
Beta Decay

5

3. ECMAScript 특징-6 바이트

[^\]]$

여기에서 테스트

다음 답변은 다음 문자열과 일치해야합니다.

PPCG
^P

그리고 다음 문자열에서 실패하십시오.

[PPCG]
^[P\^]
[^\]]$

1
정확성이 확인되었습니다.
Beta Decay

5

7. 파이썬 맛-16

(?<!\\..)(?!]).$

Regex101에서 테스트

일치 목록에 \를 추가해야합니다 :)

다음 답변은 다음 문자열과 일치해야합니다.

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$

그리고이 문자열에서 실패하십시오.

[PPCG]
^[P\^]
[^\]]$
^\^?P

정확성이 확인되었습니다.
NinjaBearMonkey 20시 46 분

이것은… 사악하다.
wchargin

@WChargin Thanks :) user23013 또는 n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳ 답변 중 일부를 확인해야합니다. 일부는 상당히 '
심각한

5

12. ECMAScript 맛-17

!|[^?]P(CG|G..)?$

여기에서 테스트하십시오 .

다음 답변은 다음 문자열과 일치해야합니다.

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$

그리고이 문자열에서 실패하십시오.

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$

정확성이 확인되었습니다.
Martin Ender 2013

5

22. PCRE 플레이버 – 29 바이트

원래 # 22가 1 시간 동안 수정되지 않았으므로 유효하지 않은 것으로 가정합니다.

^.{3,23}[.-~]..\$$|[^P?][PG]$

데모

다음 답변은 다음 문자열과 일치해야합니다.

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$

그리고이 문자열에서 실패하십시오.

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P

1
정확성이 확인되었습니다. (그렇습니다, 맞습니다, 이전 22는 이제 유효하지 않습니다.)
Martin Ender

5

26. 파이썬 맛-28

^..(.[!G)(3w^]|.{7}$|$)|\$\?

Regex101에서 테스트

다음 답변은 다음 문자열과 일치해야합니다.

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?

그리고이 문자열에서 실패하십시오.

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~

정확성이 확인되었습니다.
Martin Ender

5

30. 파이썬 맛-28

[[?C(].[-!)|w]|^P|^[^C|\\]*$

Regex101에서 테스트

의지가있을 때 ...

다음 답변은 다음 문자열과 일치해야합니다.

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P
^..(.[!)3G^w]|$)|\^.{7}$|G\)

그리고이 문자열에서 실패하십시오.

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\
[[?C(].[-!)|w]|^P|^[^C|\\]*$

정확성이 확인되었습니다.
jimmy23013

5

37. 펄 맛-30

\?[^$w]*\$$|[]C^]\w$|w.]|\w.\)

Regex101에 제출 .

솔루션은 이전과 동일한 프로그램으로 제작되었습니다. 이 프로그램은 29 자 솔루션을 인쇄 \?[^$w]*\$|[]^C]\w)$|w.]|\w.\했습니다. 왜냐하면 잘못된 정규식처럼 보이는 이유를 모르겠습니다 ...

다음 답변은 다음 문자열과 일치해야합니다.

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P
^..(.[!)3G^w]|$)|\^.{7}$|G\)
\?[^w$]*\$$|[]^C]\w+$|w\^|\|..\)

그리고이 문자열에서 실패하십시오.

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\
[[?C(].[-!)|w]|^P|^[^C|\\]*$
[?[CP(].[-<)|w]|^P|^[^C|\\]*$
^..(.{7}$|.[3Gw!^)]|$)|G.?.?\)
^...[3w!G)]|^[^\\C|]*$|G.?.?\)
^[^C\\|]+$|G.\)|\.\)|w\^|^P|\...?]
^P|!.3|w\^|^[^C\\|]+$|\.[)$-](?!.!)
\?[^$w]*\$$|[]C^]\w$|w.]|\w.\)

정확성이 확인되었습니다.
Martin Ender

Ahaha 나는 상반기와 함께 지금까지 와서 이것을 얻지 못해서 꽤 화가났다. : P
Sp3000

5

40. PCRE — 33 바이트

[]^C]\w$|\w.\)|w[[+^]|\?[^w$]*\$$

Regex101에서 테스트

다음 답변은 다음 문자열과 일치해야합니다 .

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P
^..(.[!)3G^w]|$)|\^.{7}$|G\)
\?[^w$]*\$$|[]^C]\w+$|w\^|\|..\)
\w.\)|\?[^-$]*\$$|[]^C]\w$|w[+^]

그리고이 문자열에서 실패하십시오 :

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\
[[?C(].[-!)|w]|^P|^[^C|\\]*$
[?[CP(].[-<)|w]|^P|^[^C|\\]*$
^..(.{7}$|.[3Gw!^)]|$)|G.?.?\)
^...[3w!G)]|^[^\\C|]*$|G.?.?\)
^[^C\\|]+$|G.\)|\.\)|w\^|^P|\...?]
^P|!.3|w\^|^[^C\\|]+$|\.[)$-](?!.!)
\?[^$w]*\$$|[]C^]\w$|w.]|\w.\)
\$..\\|\?[^w$]*\$$|w\^|[]^C]\w$
[]^C]\w$|\w.\)|w[[+^]|\?[^w$]*\$$

정확성이 확인되었습니다.
Vi.

1
나는 35를 가지고 있지만 그것에 만족하지 않아서 좀 더 흥미로운 것을 얻을 수 있는지 볼 것입니다.
Sp3000

그리고 32 자 답변에 대한 3 가지 옵션이 있지만 전체 도전 과제는 약간 지루합니다 (특히 Regex101 제출 및 실패 / 패스 문자열 목록 부기). 누군가 원한다면 답변을 게시 할 수 있습니다.
Vi.


4

5. ECMAScript 특징-6 바이트

^[P^]P

Regex101에서 테스트되었습니다 .

성공 세트로 사물을 꾸미는 시간.

다음 답변은 다음 문자열과 일치해야합니다.

PPCG
^P
^[P^]P

그리고이 문자열에서 실패하십시오.

[PPCG]
^[P\^]
[^\]]$
^\^?P

정확성이 확인되었습니다.
FryAmTheEggman

4

6. ECMAScript 특징-9 바이트

[^?][PG]$

Regex101에서 테스트되었습니다 .

다음 답변은 다음 문자열과 일치해야합니다.

PPCG
^P
^[P^]P
[^?][PG]$

그리고이 문자열에서 실패하십시오.

[PPCG]
^[P\^]
[^\]]$
^\^?P

1
정확성이 확인되었습니다.
FireFly

4

14. PCRE 맛-25

([.$?]|G\])\$$|^\^?P|\]P$

Regex101에서 테스트

이것은 점점 어려워지고 있습니다.

다음 답변은 다음 문자열과 일치해야합니다.

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$

그리고이 문자열에서 실패하십시오.

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$

정확성이 확인되었습니다.
Martin Ender 2014

4

15. PCRE 맛-26

([P.$?]\$|[]^]P|G\]\$|CG)$

Regex101에서 테스트

다음 답변은 다음 문자열과 일치해야합니다.

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$

그리고이 문자열에서 실패하십시오.

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$

1
정확성이 확인되었습니다.
FireFly

4

16. PCRE 맛-21

^[^?]*[PG]$|[?$].*\$$

정규식 101 에서 테스트되었습니다 .

다음 답변은 다음 문자열과 일치해야합니다.

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$

그리고이 문자열에서 실패하십시오.

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$

일치하지 않습니다 PPCG.
jimmy23013

@ user23013 fixed
es1024 1

정확성이 확인되었습니다.
jimmy23013

4

25. PCRE 맛-29

^(..[^^].{4,22}\$|[^?]+\w)$|~

여기서 테스트했습니다. 테스트 정규 표현식에는 \n여러 줄에 걸쳐 일치하는 항목이 없는지 확인하기 위한 추가 항목 이 포함되어 있습니다 . 각 개별 문자열과 일치 할 필요는 없습니다.

저 걸린 과일이었습니다! :) 나는 plannapus를 축하해야하지만,이 정규 표현식은 현재 테스트 세트에 놀랍도록 우아합니다. 이 답변을 공표하려면 이전 답변도 공표해야합니다.

다음 답변은 다음 문자열과 일치해야합니다.

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$

그리고이 문자열에서 실패하십시오.

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~

1
정확성이 확인되었습니다.
feersum

4

35. PCRE — 35 바이트

^P|!.3|w\^|^[^C\\|]+$|\.[)$-](?!.!)

Regex101에서 테스트

다음 답변은 다음 문자열과 일치해야합니다 .

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P
^..(.[!)3G^w]|$)|\^.{7}$|G\)

그리고이 문자열에서 실패하십시오 :

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\
[[?C(].[-!)|w]|^P|^[^C|\\]*$
[?[CP(].[-<)|w]|^P|^[^C|\\]*$
^..(.{7}$|.[3Gw!^)]|$)|G.?.?\)
^...[3w!G)]|^[^\\C|]*$|G.?.?\)
^[^C\\|]+$|G.\)|\.\)|w\^|^P|\...?]
^P|!.3|w\^|^[^C\\|]+$|\.[)$-](?!.!)

내 검증기는 오류가 표시되지 않습니다.
Vi.

정확성이 확인되었습니다. (@Vi., 대시 보드에서이 특정 문구를 찾습니다.)
Martin Ender

나는 그 문구를 사용하는 것에 대해 생각했지만 내 의견을 권위있게 만들 것인지 확실하지 않았습니다.
Vi.

앞에서 언급 한 다른 34 자의 대답은 여기서 효과가있는 것 같습니다. 4 시간 동안 (또는 이와 같이) 기다리는 중 ...
Vi.

나는 해킹을 귀찮게하지 않습니다-나는 그것을 컴퓨터에 위임합니다. StackExchange API를 사용하여 답변 게시 봇을 작성 하시겠습니까? ..
Vi.

4

36. 파이썬 맛-32

\?[^w$]*\$$|[]^C]\w+$|w\^|\|..\)

Regex101에서 테스트

나는 3 개의 32 바이트 정규 표현식을 준비했으며 운 좋게도 그중 하나가 여전히 작동합니다. : D

다음 답변은 다음 문자열과 일치해야합니다.

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P
^..(.[!)3G^w]|$)|\^.{7}$|G\)
\?[^w$]*\$$|[]^C]\w+$|w\^|\|..\)

그리고이 문자열에서 실패하십시오.

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\
[[?C(].[-!)|w]|^P|^[^C|\\]*$
[?[CP(].[-<)|w]|^P|^[^C|\\]*$
^..(.{7}$|.[3Gw!^)]|$)|G.?.?\)
^...[3w!G)]|^[^\\C|]*$|G.?.?\)
^[^C\\|]+$|G.\)|\.\)|w\^|^P|\...?]
^P|!.3|w\^|^[^C\\|]+$|\.[)$-](?!.!)

1
정확성이 확인되었습니다.
Martin Ender

Perl 정규식으로서의 정확성도 검증되었습니다.
Vi.

게시 대기중인 30 자 답변이 있으므로 내일까지 질문이 비활성화되기를 바랍니다.
Vi.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.