경찰과 강도 : 리버스 정규식 골프


76

참고 :이 과제는 이제 종료되었습니다. 수락 된 답변에 대해서는 향후 경찰의 제출이 고려되지 않습니다. 이것은 아무도 더 이상 도전에 관심이 없기 때문에 미래에 매우 단순한 정규 표현식을 게시 할 수 없도록하기위한 것입니다.

경찰의 도전

다음 스펙을 만족하는 짧고 난독 화 된 정규식을 작성해야합니다.

  • 온라인에서 자유롭게 테스트 할 수있는 맛을 선택할 수 있습니다. StackOverflow에 대한 온라인 테스터 목록이 많이 있습니다 . 특히 Regex101 은 PCRE, ECMAScript 및 Python 풍미를 지원하므로 시작하기에 좋습니다. 필요한 경우 오른쪽 상단 모서리에있는 렌치를 클릭하여 시간 제한을 늘릴 수 있습니다. 답변에 선택한 테스터를 포함 시키십시오.

    귀하의 취향에 맞는 테스터가 없다면, 당신은 또한 이데온 과 같은 온라인 통역사를 사용하고 사람들이 귀하의 제출물을 테스트하는 데 사용할 수있는 호스트 언어로 작은 스크립트를 작성할 수 있습니다.

  • Perl의 코드 평가 기능과 같이 호스트 언어를 직접 호출하지 않는 해당 풍미의 기능을 사용할 수 있습니다.
  • 마찬가지로 코드 평가 결과가 아닌 한 모든 한정자를 사용할 수 있습니다 (향이있는 경우).
  • 귀하의 정규식은 적어도 하나의 문자열을 수용해야합니다 S를 적어도 하나의 문자열 거부 T 적당한 시간 (안 크게 이상 분 이상)에, 길이가 적어도 16이 아닌 이상 256 자 이하입니다 각각을,. 온라인 테스터에 입력 할 수있는 방법이 있다면 ST 는 ASCII가 아닌 유니 코드 문자를 포함 할 수 있습니다. 그러한 문자열 쌍은 제출 의 열쇠 입니다.
  • 정규식은 다른 입력에 임의로 오래 걸릴 수 있습니다.

도전의 핵심 를 찾기 어려운 정규식을 만드는 것입니다. 즉, 일치하지 않는 문자열 또는 일치하는 문자열을 식별하기 어려워 야합니다 (또는 정규식이 키 문자열을 제외한 모든 문자열에서 완료하는 데 며칠이 걸리더라도 가능할 수도 있습니다).

강도의 도전

자신의 정규 표현식을 제출 한 사용자를 포함한 모든 사용자는 다른 제출을 "크랙"하는 것이 좋습니다. 중 하나가 관련 주석 섹션에 게시 되면 제출이 금이 갑니다.

중요 사항 : 키의 한 부분에 거의 모든 문자열을 사용할 수 있더라도 게시하는 두 문자열이 16 자에서 256 자 사이인지 확인하십시오.

제출물이 수정되거나 깨지지 않고 72 시간 동안 지속되는 경우 작성자는 자신의 답변에서 스포일러 태그로 편집하여 유효한 키를 공개 할 수 있습니다. 이것은 그의 대답을 "안전하게"만들 것입니다. 즉 더 이상 금이 갈 수 없습니다.

사용자 당 제출 당 하나의 크래킹 시도 만 허용됩니다. 예를 들어, 사용자 X에게 "키는 0123456789abcdef/ fedcba9876543210입니다." 그리고 나는 틀 렸습니다. 사용자 X는 내 추측을 부정확하다고 부인하며 더 이상 해당 제출에 대한 추가 추측을 제출할 수 없지만 다른 제출을 금할 수 있습니다 (다른 제출은 여전히 ​​그 제출을 해독 할 수 있음).

금이 간 제출은 경합에서 제거됩니다 ( "안전하지 않은"경우). 편집하거나 삭제해서는 안됩니다. 저자가 새로운 정규식을 제출하려면 별도의 답변으로 제출해야합니다.

자신의 제출물을 해독하지 마십시오!

참고 : 주석이 공백없이 긴 문자열 인 경우 SE는 두 줄의 유니 코드 문자 형식으로 수동 줄 바꿈을 삽입합니다. 따라서 공백이 아닌 문자 사이에 줄 바꿈이 너무 긴 키를 백틱으로 게시하면 키를 다시 정규식 테스터로 다시 복사 할 수 없습니다. 이 경우 경찰의 정규 표현식과 함께 해당 정규식 테스터에게 퍼머 링크를 제공하고 키에는 대부분이 테스터가 포함됩니다.

채점

경찰의 점수는 크랙되지 않은 경우 정규 표현식의 크기 (바이트 + 패턴 + 수정 자, 잠재적 구분 기호는 계산되지 않음)입니다. "안전한"제출의 최저 점수가 이길 것입니다.

강도 점수는 그들이 제출 한 제출 횟수입니다. 동점 일 경우, 크래킹 된 제출의 총 바이트 크기는 동점 분리기로 사용됩니다. 여기서 가장 높은 바이트 수가 이깁니다.

위에서 언급했듯이 모든 경찰은 강도로 참여할 수 있으며 그 반대도 마찬가지입니다.

도전의 두 부분에 대해 별도의 리더 보드를 유지합니다.

리더 보드

최종 업데이트 : 2014 년 10 월 19 일, 20:33 UTC

경찰 :

기울임 꼴로 제출 한 내용은 아직 안전하지 않습니다.

  1. nneonneo , 841 바이트
  2. Wumpus Q. Wumbley , 10,602 바이트
  3. Sp3000 , 52,506 바이트
  4. user23013 , 53,884 바이트
  5. nneonneo , 656,813 바이트

강도 :

  1. user23013 , Cracked : 11, 총 크기 : 733 + 30 + 2,447 + 71 + 109 + 121 + 97 + 60 + 141 + 200,127 + 7,563 = 211,499 바이트
  2. nneonneo , 금이 간 : 10, 총 크기 : 4,842 + 12,371 + 150 + 3,571 + 96 + 168 + 395 + 1,043 + 458 + 17,372 = 40,466 바이트
  3. Wumpus Q. Wumbley , Cracked : 6, 총 크기 : 22 + 24 + 158 + 32 + 145,245 + 145,475 = 290,956 바이트
  4. Dennis , Cracked : 2, 총 크기 : 70 + 73 = 143 바이트
  5. harius , 금이 간 : 1, 총 크기 : 9,998 바이트
  6. g.rocket , 깨짐 : 1, 총 크기 : 721 바이트
  7. stokastic , 금이 간 : 1, 총 크기 : 211 바이트
  8. Sp3000 , 균열 : 1, 총 크기 : 133 바이트
  9. TwiNight , Cracked : 1, 총 크기 : 39 바이트

6
이 퍼즐을 구성하고 해결하려고 시도한 코드가 몇 줄인지 궁금합니다. 모든 것을 수집하고 github에 넣을 가치가 있는지 궁금합니다. 모든 사람은 자신이 가지고있는 모든 것 (인코더, 디코더, 성공 및 성공하지 못한 솔버)을 그대로 제공 할 수 있습니다. README를 사용하면 기분이 좋아집니다. 우리의 회의 진행과 같습니다.

더 이상 새로운 답변이 게시되지는 않지만 어느 시점에서 질문을 "닫는"것이 좋습니다. 그렇지 않으면, 관심이 없어 졌을 때 누군가가 대답 할 수 있고 더 오랜 기간 동안 경쟁하지 않을 수 있습니다.
nneonneo

@ nneonneo 흠, 나는 일반적으로 내 도전을 닫고 싶지 않지만이 경우 좋은 생각 일 수 있습니다. 심지어 마지막 3 개의 출품작은 이미 덜 주목을 받아 이익을 얻은 것으로 생각합니다. 금요일 마감 기한을 정하겠습니다.
Martin Ender

@ MartinBüttner : 경찰과 강도 문제가 만료 날짜를 갖기 위해서는 표준이어야한다고 생각합니다. 도전은 오랫동안 오랫동안 흥미를 유지합니다. (기록상,이 도전은 여전히 ​​내가 개인적으로 가장 좋아하는 것이지만, 나는 그 의견에 편견이있을 수 있습니다.)
nneonneo

답변:


19

.NET 정규식, 841 바이트 [안전!]

이제 안전한 입장을 마쳤으므로 정규식을 얼마나 작게 만들 수 있는지 봅시다!

^(?<a>){53}((0(((?<-a>)(?<A>){7}|){997}((?<-b>)(?<B>){7}|){997}((?<-c>)(?<C>){7}|){997}((?<-d>)(?<D>){7}|){997}((?<-e>)(?<E>){7}|){997}((?<-f>)(?<F>){7}|){997}((?<-g>)(?<G>){7}|){997}(?<A>){5})|1(((?<-a>)(?<A>){3}|){997}((?<-b>)(?<B>){3}|){997}((?<-c>)(?<C>){3}|){997}((?<-d>)(?<D>){3}|){997}((?<-e>)(?<E>){3}|){997}((?<-f>)(?<F>){3}|){997}((?<-g>)(?<G>){3}|){997}(?<A>)))((?<-A>){997}(?<B>)|){9}((?<-A>)(?<a>)|){997}((?<-B>){997}(?<C>)|){9}((?<-B>)(?<b>)|){997}((?<-C>){997}(?<D>)|){9}((?<-C>)(?<c>)|){997}((?<-D>){997}(?<E>)|){9}((?<-D>)(?<d>)|){997}((?<-E>){997}(?<F>)|){9}((?<-E>)(?<e>)|){997}((?<-F>){997}(?<G>)|){9}((?<-F>)(?<f>)|){997}((?<-G>){997}|){9}((?<-G>)(?<g>)|){997}){256}$(?<-a>){615}(?(a)(?!))(?<-b>){59}(?(b)(?!))(?<-c>){649}(?(c)(?!))(?<-d>){712}(?(d)(?!))(?<-e>){923}(?(e)(?!))(?<-f>){263}(?(f)(?!))(?<-g>){506}(?(g)(?!))

확인 :

^(?<a>){53}
(
    (0(
        ((?<-a>)(?<A>){7}|){997}
        ((?<-b>)(?<B>){7}|){997}
        ((?<-c>)(?<C>){7}|){997}
        ((?<-d>)(?<D>){7}|){997}
        ((?<-e>)(?<E>){7}|){997}
        ((?<-f>)(?<F>){7}|){997}
        ((?<-g>)(?<G>){7}|){997}
        (?<A>){5})
    |1(
        ((?<-a>)(?<A>){3}|){997}
        ((?<-b>)(?<B>){3}|){997}
        ((?<-c>)(?<C>){3}|){997}
        ((?<-d>)(?<D>){3}|){997}
        ((?<-e>)(?<E>){3}|){997}
        ((?<-f>)(?<F>){3}|){997}
        ((?<-g>)(?<G>){3}|){997}
        (?<A>))
    )
    ((?<-A>){997}(?<B>)|){9}((?<-A>)(?<a>)|){997}
    ((?<-B>){997}(?<C>)|){9}((?<-B>)(?<b>)|){997}
    ((?<-C>){997}(?<D>)|){9}((?<-C>)(?<c>)|){997}
    ((?<-D>){997}(?<E>)|){9}((?<-D>)(?<d>)|){997}
    ((?<-E>){997}(?<F>)|){9}((?<-E>)(?<e>)|){997}
    ((?<-F>){997}(?<G>)|){9}((?<-F>)(?<f>)|){997}
    ((?<-G>){997}|){9}      ((?<-G>)(?<g>)|){997}
){256}$

(?<-a>){615}(?(a)(?!))
(?<-b>){59}(?(b)(?!))
(?<-c>){649}(?(c)(?!))
(?<-d>){712}(?(d)(?!))
(?<-e>){923}(?(e)(?!))
(?<-f>){263}(?(f)(?!))
(?<-g>){506}(?(g)(?!))

풍모:

  • 짧은 841 바이트
  • 골프 와 손으로 쓴
  • NP-hard 문제를 인코딩하는 것으로 알려지지 않음
  • 가장 유효하지 않은 입력 시간이 초과되었습니다 :)
  • http://regexhero.net/tester/ 에서 테스트되었으며 유효한 입력에 ~ 5 초가 소요됩니다.

.NET 정규식으로 연결해 준 Sp3000 및 user23013에게 감사합니다.


72 시간 후에이 제출물을 안전하게 만드는 열쇠를 공개합니다.

경기 :

1110111111110010000110011000001011011110101111000011101011110011001000000111111111001010000111100011111000000100011110110111001101011001000101111110010111100000000010110001111011011111100000011001101110011111011010100111011101111001110111010001111011000000

불일치 :Aren'tHashFunctionsFun?

설명:

이 정규 표현식은 매우 단순하고 어리석은 해시 함수를 구현합니다. 해시 함수는 단일 정수 x를 출력으로 계산합니다 . x문자는 각 문자에 따라 조정됩니다. 문자가 표시되면 0을 설정 x = 7x + 5하고을 표시하면 1을 (를) 설정하는 것입니다 x = 3x + 1. x그러면 mod 997 7이 줄어 듭니다 . 최종 결과는 사전 정의 된 상수와 비교하여 점검됩니다. 해시 값이 같지 않으면 정규식이 일치하지 않습니다.

7 개의 캡처 그룹 (ag)은의 기본 997 자리를 저장하는 데 사용 x되며 7 개의 추가 캡처 그룹 (AG)은 임시 저장소로 사용됩니다. 캡처 그룹에 정수를 저장하기 위해 .NET 정규식의 "밸런싱 캡처 그룹"확장명을 사용합니다. 기술적으로, 각 캡처 그룹과 연관된 정수는 해당 그룹에 의해 캡처 된 불균형 일치의 수입니다. 를 사용하여 빈 문자열을 "캡처"하면 캡처 (?<X>)수가 증가하고 캡처를 사용하여 그룹을 "밸런싱"하면 (?<-X>)캡처 수가없는 경우 일치 실패가 발생합니다. 고정 상수를 더하고 빼기 위해 두 가지를 반복 할 수 있습니다.

이 해시 알고리즘은 서둘러 요리 한 알고리즘 일 뿐이며 덧셈과 곱셈 만 사용하여 합리적으로 안전 해 보이는 가장 작은 해시 알고리즘입니다. 확실히 암호화 수준이 아니다, 그것이 가능 미만 997에서 충돌 찾을 수 있습니다 약점이 될 가능성이있다 (7) / 2 해시 평가.


아이디어가 ... 하드 디스크에 500GB 이상의 여유 공간이 없기 때문에 포기했습니다.
jimmy23013

3
3 개의 금이 간 제출물에서 지금 그것을보고, 나는 그 구성의 목적에 대한 나의 완전한 무지를 공식적으로 등록하고있다 (?<a>){53}. 빈 패턴을 명명 된 그룹으로 a53 번 캡처하는 것 같습니다 . 설정하고 a=""52 번 더 반복합니까? 그러나 나는 (?<정규 표현식에 대한 Microsoft의 아이디어에서 동일한 것을 의미 하는지 정말로 모른다 . 그들의 문서는 언급조차하지 않았다 . 정규 표현식 컨테스트 조차도 유닉스 사람들을 대상으로하는 문서화되지 않은 Microsoft 확장으로 끝나는 경우 , 나는 존재하지 않습니다.

53 번만 캡처하는 그룹 캡처입니다. .NET에는 균형 그룹 캡처라는 확장 기능이 있으며 이는 paren 일치에 대한 답변입니다. 명명 된 각 그룹은 스택처럼 작동하므로 (?<a>){53}빈 문자열을 53 번 푸시합니다. 을 사용하여 스택을 팝할 수 있습니다 (?<-a>). 바라건대이 구성이 왜 그렇게 유용한 지 분명히 알 수 있습니다.
nneonneo

2
@ WumpusQ.Wumbley 나는 이것이 유용한 유닉스 사람들입니다.
jimmy23013

4
@ WumpusQ.Wumbley MSDN에는 구성 구문 그룹화에 대한 전체 페이지가 있습니다. 빠른 참조에서 찾을 수 있습니다 . 어느 것 ".NET 정규식 참조"에 대한 최초의 히트 유사 펄 검색어에. "구문", "수동"또는 "사양"과 동일합니다.
Martin Ender

29

기본 정규식, 656813 바이트 [안전!]

모든 정규 표현식을 종료하는 정규 표현식입니다. 밤에 하나의 마지막 만세.

PCRE, Perl, Python 등에서 테스트 할 수 있습니다.

Pastebin의 bzip2'd 및 base64 인코딩 버전 : http://pastebin.com/9kprSWBn(Pastebin 은 너무 커서 원시 버전을 원하지 않았습니다).

올바른 정규식을 얻으려면 MD5 해시가 올바른지 확인하십시오.

c121a7604c6f819d3805231c6241c4ef

또는 시작으로 확인

^(?:.*[^!0-9@-Za-z].*|.{,255}|.{257,}|.[U-Za-z].{34}[12569@CDGHKLOPSTWXabefijmnqruvyz].{8}[02468@BDFHJLNPRTVXZbdfhjlnprtvxz].{210}

그리고 끝

.{56}[7-9@-DM-Tc-js-z].{121}[3-6A-DI-LQ-TYZabg-jo-rw-z].{28}[!0-9@-T].{48})$

이 키는 여전히 편안한 256 바이트입니다.

이 정규 표현식을 Python으로 테스트했지만이 정규 표현식은 Python의 특별한 기능을 사용하지 않습니다. 실제로 (?:)(그룹화 메커니즘)을 제외하고는 기본 문자 클래스, 반복 및 앵커링과 같은 정규 표현식 엔진의 특별한 기능을 전혀 사용하지 않습니다. 따라서 많은 정규식 엔진에서 테스트 할 수 있어야합니다.

글쎄, 실제로, 누군가가 작은 문제를 즉시 해결하지 못한다고 가정하면 여전히 어려움을 겪을 수 있습니다 ...하지만 내기를하는 사람들은 1GB 정규식에 문제가있을 것입니다 ...


72 시간이 지난 후에도이 제출 내용 은 그대로 유지됩니다! 따라서 이제 제출을 안전하게 만드는 열쇠를 밝히고 있습니다. 이것은 영구 도둑에 의해 30 건이 넘는 제출이 연속적으로 발생한 후 첫 번째 안전한 제출입니다.

경기 : Massive Regex Problem Survives The Night!
불일치 :rae4q9N4gMXG3QkjV1lvbfN!wI4unaqJtMXG9sqt2Tb!0eonbKx9yUt3xcZlUo5ZDilQO6Wfh25vixRzgWUDdiYgw7@J8LgYINiUzEsIjc1GPV1jpXqGcbS7JETMBAqGSlFC3ZOuCJroqcBeYQtOiEHRpmCM1ZPyRQg26F5Cf!5xthgWNiK!8q0mS7093XlRo7YJTgZUXHEN!tXXhER!Kenf8jRFGaWu6AoQpj!juLyMuUO5i0V5cz7knpDX0nsL

정규식 설명 :

정규식은 의도적으로 소개 된 임의 솔루션으로 "하드"3SAT 문제에서 생성되었습니다. 이 문제는 [Jia, Moore & Strain, 2007]의 알고리즘을 사용하여 생성되었습니다. 6 개의 부울 변수가 키의 각 바이트에 압축되어 총 1536 개의 변수가 있습니다.
정규 표현식 자체는 매우 간단합니다. 각 7680 3SAT 절을 (모건의 법칙에 따라) 거꾸로 된 조건으로 표현하고 3SAT 절 중 하나를 충족하지 않는 문자열과 일치합니다. 따라서 키는 정규식과 일치하지 않는 문자열, 즉 절 중 하나를 만족시키는 문자열입니다.


1
그래서 방금 60MB 정규 표현식을 Python에로드하려고했습니다. 아마, 그것은 행복하지 않았다. 컴파일하는 데 몇 분이 걸렸지 만 멋진 부분은 거의 즉시 쿼리에 응답한다는 것입니다. 파이썬으로 1GB 정규식을로드하는 데 컴파일하는 데 몇 시간이 걸릴 것으로 의심됩니다 ...
nneonneo

3
아니면 너무 쉽지 않습니다. 이를 해결 가능한 크기로 축소하려는 첫 번째 시도를 바탕으로, 제 시간에 완료하려면 약 2 ** 61 개의 CPU가 필요합니다.

12
도전은 " 짧고 난독 화 된 정규식 을 작성해야한다 "(강조 추가)
Ypnypn

5
도전은 지금까지 심지어 보드에 어떤 uncrackable 정규식을 얻을 수있다 @Ypnypn - 그것은 비록 그 장벽을 깰 첫번째 것 같은이 하나 :) 보인다
SP3000

3
@ MartinBüttner : 감사합니다! 나는 그렇게했다. 이제 다른 NP-hard 정규식 문제 중 일부를 시도해
보아야

17

ECMAScript (10602 바이트)

(언어 참고 :. 나는 게시물 레이블 루비, 파이썬, 또는 무엇 이건, 그들이 정말 어떤 언어 특정 기능을 사용하지 않는 경우가 많은이 하나는 필요 참조 (?!...)(?=...)역 참조와 POSIX ERE의 상단에 그 기능이 아마에 있습니다. 자바 스크립트 온라인 테스터를 사용하기로 선택했기 때문에 좋아하는 언어의 정규 표현식 엔진이므로 도전을 시도하지 않는 것이 좋습니다.)

약간의 재미는 있지만 다른 것만 큼 계산적으로 어렵지는 않습니다.

^(?!(.).*\1.|.+(.).*\2)(?=(.))(?=(((?![ҁѧѦЩ]{2}).)*(?=[ҁѧѦЩ]{2}).){2}(?!.*[ЩѦҁѧ]{2}))(?=(((?![ɿqԼϚ]{2}).)*(?=[ϚqԼɿ]{2}).){2}(?!.*[ԼϚɿq]{2}))(?=((?![ϼλҡՄ]{2}).)*(?=[ҡλϼՄ]{2}).(?!.*[Մλϼҡ]{2}))(?=(((?![ʯֆɎF]{2}).)*(?=[FֆʯɎ]{2}).){2}(?!.*[FɎֆʯ]{2}))(?=(((?![AɔbУ]{2}).)*(?=[ɔbAУ]{2}).){3}(?!.*[ɔAbУ]{2}))(?=(((?![ʈͽՄɒ]{2}).)*(?=[ͽՄɒʈ]{2}).){2}(?!.*[ͽՄɒʈ]{2}))(?=(((?![ϙшѭϢ]{2}).)*(?=[Ϣϙѭш]{2}).){2}(?!.*[ѭшϙϢ]{2}))(?=(((?![ՐɏƋѠ]{2}).)*(?=[ƋՐɏѠ]{2}).){2}(?!.*[ѠƋՐɏ]{2}))(?=(((?![Жտʓo]{2}).)*(?=[Жտʓo]{2}).){2}(?!.*[Жʓտo]{2}))(?=(((?![ƆʙƸM]{2}).)*(?=[ƆʙMƸ]{2}).){2}(?!.*[ƆʙMƸ]{2}))(?=(((?![dNѤѯ]{2}).)*(?=[ѤѯNd]{2}).){2}(?!.*[ѤѯdN]{2}))(?=(((?![ҎvȵҜ]{2}).)*(?=[vҜȵҎ]{2}).){2}(?!.*[ҎvҜȵ]{2}))(?=(((?![ҹɀҀҤ]{2}).)*(?=[ɀҤҀҹ]{2}).){2}(?!.*[ҹҤҀɀ]{2}))(?=(((?![OɄfC]{2}).)*(?=[fOɄC]{2}).){3}(?!.*[ɄOfC]{2}))(?=((?![ǷϗЋԒ]{2}).)*(?=[ЋϗԒǷ]{2}).(?!.*[ԒϗЋǷ]{2}))(?=((?![էҹϞҀ]{2}).)*(?=[ҹҀէϞ]{2}).(?!.*[ϞէҹҀ]{2}))(?=(((?![QԶϧk]{2}).)*(?=[QkϧԶ]{2}).){2}(?!.*[ϧԶkQ]{2}))(?=(((?![cիYt]{2}).)*(?=[իYct]{2}).){2}(?!.*[tcYի]{2}))(?=(((?![ɐҷCɄ]{2}).)*(?=[CɄɐҷ]{2}).){3}(?!.*[CҷɐɄ]{2}))(?=(((?![ҥմѾϢ]{2}).)*(?=[ϢѾմҥ]{2}).){2}(?!.*[մϢѾҥ]{2}))(?=((?![Ϛǝjɰ]{2}).)*(?=[Ϛǝjɰ]{2}).(?!.*[jɰϚǝ]{2}))(?=((?![ϭBѾҸ]{2}).)*(?=[ѾҸϭB]{2}).(?!.*[ѾҸBϭ]{2}))(?=((?![ϼλyՎ]{2}).)*(?=[λՎyϼ]{2}).(?!.*[λՎyϼ]{2}))(?=((?![MԋƆƻ]{2}).)*(?=[ƻƆԋM]{2}).(?!.*[MƆԋƻ]{2}))(?=(((?![uԳƎȺ]{2}).)*(?=[uԳƎȺ]{2}).){3}(?!.*[ȺƎuԳ]{2}))(?=((?![ɂƐϣq]{2}).)*(?=[qϣƐɂ]{2}).(?!.*[ɂƐϣq]{2}))(?=(((?![ϫճωƺ]{2}).)*(?=[ωϫճƺ]{2}).){2}(?!.*[ճƺϫω]{2}))(?=((?![ζɏΞƋ]{2}).)*(?=[ɏƋζΞ]{2}).(?!.*[ɏƋζΞ]{2}))(?=(((?![Ӄxԏϣ]{2}).)*(?=[Ӄxԏϣ]{2}).){2}(?!.*[ԏxϣӃ]{2}))(?=(((?![ԈʄʫԻ]{2}).)*(?=[ԻʄԈʫ]{2}).){2}(?!.*[ʫԈԻʄ]{2}))(?=(((?![ɒէƣʈ]{2}).)*(?=[ʈɒէƣ]{2}).){2}(?!.*[ʈƣɒէ]{2}))(?=(((?![Ϥϟƺϫ]{2}).)*(?=[Ϥϫϟƺ]{2}).){3}(?!.*[ƺϫϤϟ]{2}))(?=((?![ɋȡþͼ]{2}).)*(?=[ȡþͼɋ]{2}).(?!.*[þͼȡɋ]{2}))(?=((?![ҡʈԄՄ]{2}).)*(?=[ʈԄՄҡ]{2}).(?!.*[ՄԄҡʈ]{2}))(?=(((?![ʌkȿՌ]{2}).)*(?=[Ռȿkʌ]{2}).){3}(?!.*[kՌȿʌ]{2}))(?=(((?![gǝժʮ]{2}).)*(?=[ǝgʮժ]{2}).){2}(?!.*[gǝʮժ]{2}))(?=((?![ɧƸȝՊ]{2}).)*(?=[ƸɧȝՊ]{2}).(?!.*[ՊȝɧƸ]{2}))(?=(((?![ɜȶʟɀ]{2}).)*(?=[ɀȶʟɜ]{2}).){3}(?!.*[ȶɀʟɜ]{2}))(?=((?![ƅѿOf]{2}).)*(?=[ѿfƅO]{2}).(?!.*[Oѿfƅ]{2}))(?=(((?![GҠƪԅ]{2}).)*(?=[ҠGԅƪ]{2}).){2}(?!.*[GԅƪҠ]{2}))(?=(((?![Һӻѩͽ]{2}).)*(?=[ӻͽҺѩ]{2}).){2}(?!.*[ͽҺѩӻ]{2}))(?=(((?![ʊLՅϪ]{2}).)*(?=[ՅʊLϪ]{2}).){3}(?!.*[LʊϪՅ]{2}))(?=(((?![ɅՈƪԅ]{2}).)*(?=[ƪԅՈɅ]{2}).){2}(?!.*[ԅՈƪɅ]{2}))(?=((?![ʇɊƈѹ]{2}).)*(?=[Ɋƈʇѹ]{2}).(?!.*[ʇƈѹɊ]{2}))(?=(((?![նЏYI]{2}).)*(?=[IYնЏ]{2}).){2}(?!.*[նЏIY]{2}))(?=((?![ͼխɷȡ]{2}).)*(?=[ͼȡɷխ]{2}).(?!.*[ɷխȡͼ]{2}))(?=((?![ҝɞҎv]{2}).)*(?=[ɞҎvҝ]{2}).(?!.*[Ҏҝvɞ]{2}))(?=(((?![eƪGω]{2}).)*(?=[Geƪω]{2}).){3}(?!.*[ƪeGω]{2}))(?=(((?![ɂɿƱq]{2}).)*(?=[Ʊqɿɂ]{2}).){2}(?!.*[Ʊqɂɿ]{2}))(?=((?![ƣЖoɒ]{2}).)*(?=[Жɒoƣ]{2}).(?!.*[ƣoɒЖ]{2}))(?=(((?![Ҵԉձϻ]{2}).)*(?=[ձԉϻҴ]{2}).){2}(?!.*[ϻԉձҴ]{2}))(?=((?![ɆɟѧE]{2}).)*(?=[EѧɆɟ]{2}).(?!.*[ѧEɆɟ]{2}))(?=((?![ѪɝȾѸ]{2}).)*(?=[ѪѸɝȾ]{2}).(?!.*[ѪѸȾɝ]{2}))(?=(((?![ßΩԂɥ]{2}).)*(?=[ɥΩßԂ]{2}).){2}(?!.*[ɥßԂΩ]{2}))(?=(((?![ӃդƐϣ]{2}).)*(?=[ƐդӃϣ]{2}).){2}(?!.*[ϣդƐӃ]{2}))(?=(((?![ѪլѸԿ]{2}).)*(?=[ԿѪѸլ]{2}).){2}(?!.*[ԿѪլѸ]{2}))(?=((?![ɉшƻϙ]{2}).)*(?=[ɉƻшϙ]{2}).(?!.*[ϙƻɉш]{2}))(?=((?![ѹփʯΨ]{2}).)*(?=[ʯփΨѹ]{2}).(?!.*[ѹʯփΨ]{2}))(?=((?![ƕϯʮҏ]{2}).)*(?=[ƕҏʮϯ]{2}).(?!.*[ҏϯʮƕ]{2}))(?=((?![ՌȿSբ]{2}).)*(?=[բՌSȿ]{2}).(?!.*[SȿբՌ]{2}))(?=(((?![ИщɌK]{2}).)*(?=[ɌщИK]{2}).){2}(?!.*[ɌИщK]{2}))(?=(((?![aҵɸւ]{2}).)*(?=[ւҵaɸ]{2}).){2}(?!.*[aւɸҵ]{2}))(?=(((?![լѸխɷ]{2}).)*(?=[ɷѸլխ]{2}).){2}(?!.*[խɷլѸ]{2}))(?=(((?![ՉLʝϥ]{2}).)*(?=[LϥʝՉ]{2}).){2}(?!.*[ՉϥʝL]{2}))(?=((?![ʬϬȝɣ]{2}).)*(?=[Ϭɣȝʬ]{2}).(?!.*[ȝɣϬʬ]{2}))(?=(((?![ɺȴҵւ]{2}).)*(?=[ȴɺҵւ]{2}).){3}(?!.*[ҵȴɺւ]{2}))(?=(((?![ΞʇɊζ]{2}).)*(?=[ζɊʇΞ]{2}).){2}(?!.*[ΞɊζʇ]{2}))(?=(((?![դփӃΨ]{2}).)*(?=[ΨփդӃ]{2}).){2}(?!.*[ΨփդӃ]{2}))(?=((?![ԳuҦc]{2}).)*(?=[uԳҦc]{2}).(?!.*[ҦucԳ]{2}))(?=(((?![ԻЭɌщ]{2}).)*(?=[ԻɌщЭ]{2}).){2}(?!.*[ɌщԻЭ]{2}))(?=((?![ЉջѮӺ]{2}).)*(?=[ӺЉѮջ]{2}).(?!.*[ѮӺЉջ]{2}))(?=(((?![ӿѤɹN]{2}).)*(?=[ӿɹѤN]{2}).){3}(?!.*[ѤNɹӿ]{2}))(?=(((?![ƕʮBg]{2}).)*(?=[Bʮgƕ]{2}).){3}(?!.*[Bʮgƕ]{2}))(?=((?![կƛȸԓ]{2}).)*(?=[ƛȸԓկ]{2}).(?!.*[կԓƛȸ]{2}))(?=(((?![ɥДȸh]{2}).)*(?=[ɥhДȸ]{2}).){2}(?!.*[ɥhȸД]{2}))(?=(((?![ʁԺեW]{2}).)*(?=[եWԺʁ]{2}).){2}(?!.*[ԺʁWե]{2}))(?=((?![ɮςϿʢ]{2}).)*(?=[ʢϿɮς]{2}).(?!.*[ɮςʢϿ]{2}))(?=(((?![ձУAƾ]{2}).)*(?=[ƾУձA]{2}).){2}(?!.*[УAձƾ]{2}))(?=(((?![ԻϠɌʄ]{2}).)*(?=[ʄɌԻϠ]{2}).){2}(?!.*[ϠɌʄԻ]{2}))(?=((?![ɜҥմȶ]{2}).)*(?=[ҥȶɜմ]{2}).(?!.*[ҥȶɜմ]{2}))(?=(((?![ƏՀթϞ]{2}).)*(?=[թՀƏϞ]{2}).){2}(?!.*[ƏՀթϞ]{2}))(?=((?![ҩɃȽϛ]{2}).)*(?=[ɃȽϛҩ]{2}).(?!.*[ҩϛɃȽ]{2}))(?=((?![ҠȺԃD]{2}).)*(?=[ȺҠԃD]{2}).(?!.*[DԃҠȺ]{2}))(?=((?![ɆʊLϥ]{2}).)*(?=[LϥʊɆ]{2}).(?!.*[ʊϥɆL]{2}))(?=(((?![ͽѩɒЖ]{2}).)*(?=[ͽɒѩЖ]{2}).){2}(?!.*[ѩɒЖͽ]{2}))(?=(((?![ςϪʢƩ]{2}).)*(?=[ƩʢςϪ]{2}).){3}(?!.*[ςƩϪʢ]{2}))(?=(((?![ҁϥѧɆ]{2}).)*(?=[ϥѧҁɆ]{2}).){2}(?!.*[ѧҁϥɆ]{2}))(?=((?![Жϗѩʓ]{2}).)*(?=[ʓϗЖѩ]{2}).(?!.*[ʓЖϗѩ]{2}))(?=(((?![ʁեɋþ]{2}).)*(?=[ʁɋեþ]{2}).){2}(?!.*[þեʁɋ]{2}))(?=((?![Mnƻɉ]{2}).)*(?=[Mɉƻn]{2}).(?!.*[ƻMnɉ]{2}))(?=(((?![HʬϬѺ]{2}).)*(?=[HѺʬϬ]{2}).){2}(?!.*[ϬѺʬH]{2}))(?=(((?![cիըҦ]{2}).)*(?=[ըҦիc]{2}).){2}(?!.*[cիҦը]{2}))(?=((?![ȸɥկΩ]{2}).)*(?=[ɥΩկȸ]{2}).(?!.*[ɥȸկΩ]{2}))(?=(((?![ʫҝԲɞ]{2}).)*(?=[ʫԲɞҝ]{2}).){2}(?!.*[ʫɞԲҝ]{2}))(?=(((?![ҺЋϗѩ]{2}).)*(?=[ѩҺϗЋ]{2}).){3}(?!.*[ҺѩЋϗ]{2}))(?=((?![ʯΨɎч]{2}).)*(?=[ʯΨɎч]{2}).(?!.*[ʯΨɎч]{2}))(?=(((?![ѮɔЉA]{2}).)*(?=[ЉɔѮA]{2}).){2}(?!.*[ѮɔAЉ]{2}))(?=(((?![ʞӶdN]{2}).)*(?=[dNʞӶ]{2}).){2}(?!.*[ӶNdʞ]{2}))(?=(((?![ԀŋҔɴ]{2}).)*(?=[ŋԀҔɴ]{2}).){3}(?!.*[ҔɴŋԀ]{2}))(?=(((?![ΠЪƏթ]{2}).)*(?=[ƏΠթЪ]{2}).){3}(?!.*[ΠթЪƏ]{2}))(?=(((?![OՌѿբ]{2}).)*(?=[ՌOբѿ]{2}).){2}(?!.*[OբՌѿ]{2}))(?=((?![ɮȾʢѪ]{2}).)*(?=[ɮȾʢѪ]{2}).(?!.*[ѪȾɮʢ]{2}))(?=((?![ЪϤՋΠ]{2}).)*(?=[ϤΠЪՋ]{2}).(?!.*[ՋΠЪϤ]{2}))(?=((?![Մͽӻϼ]{2}).)*(?=[ͽϼՄӻ]{2}).(?!.*[ϼͽՄӻ]{2}))(?=((?![ԋҳѦЩ]{2}).)*(?=[ѦԋЩҳ]{2}).(?!.*[ѦЩҳԋ]{2}))(?=((?![gҶҸB]{2}).)*(?=[BҶgҸ]{2}).(?!.*[ҸBgҶ]{2}))(?=(((?![ɢλҡѥ]{2}).)*(?=[λҡɢѥ]{2}).){2}(?!.*[ѥλɢҡ]{2}))(?=(((?![AϻЉձ]{2}).)*(?=[ϻձЉA]{2}).){2}(?!.*[ϻձЉA]{2}))(?=((?![tRիp]{2}).)*(?=[Rtpի]{2}).(?!.*[tpRի]{2}))(?=(((?![ɮȹϿÞ]{2}).)*(?=[ϿɮÞȹ]{2}).){2}(?!.*[ϿɮȹÞ]{2}))(?=((?![ϯժʮџ]{2}).)*(?=[ժџϯʮ]{2}).(?!.*[џϯʮժ]{2}))(?=(((?![HʬȠҨ]{2}).)*(?=[HҨȠʬ]{2}).){2}(?!.*[ȠҨʬH]{2}))(?=((?![ՒԉPϻ]{2}).)*(?=[ԉϻPՒ]{2}).(?!.*[PϻԉՒ]{2}))((?=Գ[նƎuc]|ƕ[Bʮȴҏ]|ϣ[ԏɂӃƐ]|Ʊ[ɿϬӄɂ]|Ѿ[ϭϢҸҥ]|ͽ[ѩӻՄɒ]|ɷ[խͼլ]|փ[դiѹΨ]|ϛ[ɅɃȽՀ]|Ԃ[ɥѭմß]|խ[ȡɐѸɷ]|P[ȠՒԉ]|ӷ[ЩEՊƆ]|Ə[ΠթƣϞ]|ч[xɎΨ]|ʄ[ԈϠԻҺ]|Љ[AѮϻջ]|ɒ[ʈƣЖͽ]|ʞ[ӶɔNЦ]|Ɛ[ϣɰqդ]|ʮ[ϯժƕg]|ɥ[ȸДԂΩ]|Ҕ[ŋՐɺɴ]|χ[Ԏѯ]|Ջ[ΠϤԾտ]|Ɏ[чʯֆ]|ҥ[մѬѾȶ]|ɞ[ҝҎԲ]|ҏ[ƕՐϯɺ]|Հ[ϛթϞw]|y[ϼԈҝՎ]|λ[ѥՎϼҡ]|Մ[ͽҡϼʈ]|ϟ[ϫϤԾ]|Ћ[ǷϠҺϗ]|ʫ[ԲԈҝԻ]|ǝ[gjɰժ]|Ԅ[ҡҹʟʈ]|ʌ[kՌэC]|ȶ[ҥЊɜʟ]|Ɍ[щИԻϠ]|ի[Rtըc]|Ո[ƪƺЪɅ]|ƺ[ՈϤϫω]|ß[ԂΩɜҤ]|I[նЏљ]|ҷ[ȡэCɐ]|Ц[ςbʞɹ]|Ǝ[ǂȺԳG]|ӄ[ƱӾѺ]|ʇ[ζiɊѹ]|ֆ[ɎF]|ɏ[ѠΞƋ]|Բ[ɞʫЭ]|Ի[ɌЭʫʄ]|ƪ[ԅωGՈ]|ȡ[խɋͼҷ]|Ϡ[ɌдʄЋ]|ɋ[эʁþȡ]|U[ɝɄՅʝ]|ɺ[ҵȴҏҔ]|Ƚ[ԅϛDҩ]|Ɋ[ƈʇΞ]|ժ[Φʮǝџ]|Ӿ[ӄɂԏ]|Ψ[Ӄчʯփ]|Ω[Ղկßɥ]|щ[KɌЭ]|ɉ[nҶшƻ]|Ժ[WԱե]|G[ƎeҠƪ]|ղ[կՂՑɃ]|Ӷ[ԷʞdѮ]|u[ȺԳQҦ]|Ѡ[ɴɏՐ]|ƛ[ԓՑѿկ]|ɜ[ɀմßȶ]|Ҵ[ԉձʡɧ]|ȿ[kSՌԃ]|ɂ[qӾϣƱ]|Պ[ӷɧƸʡ]|Щ[ѧѦӷԋ]|Ⱦ[ѪɝʢՅ]|Ƀ[ղҩwϛ]|Ҏ[vҜɞ]|ɐ[ҷɄɝխ]|ԏ[ϣxӾ]|Ҁ[ҹϞҤw]|մ[ԂҥɜϢ]|ҳ[ДԋϙѦ]|Ϛ[jɰqԼ]|w[ҀՀɃՂ]|E[ӷɟѧʡ]|У[μAbƾ]|ձ[ҴϻƾA]|ɟ[ɆμEƾ]|Ҥ[ҀßՂɀ]|v[ȵҎՎҝ]|ш[ϢϙɉҸ]|Ͽ[ɹɮςÞ]|O[fCՌѿ]|ʁ[ԶեWɋ]|ȹ[ÞԿɮ]|Ϟ[ՀէҀƏ]|ԋ[ƻҳЩƆ]|ƅ[fԓՉѿ]|ω[ƺeճƪ]|ʈ[ɒԄՄէ]|Ԉ[ʫʄӻy]|Ƌ[ζՐϯɏ]|ɰ[ǝƐΦϚ]|ȴ[ƕϭւɺ]|Δ[Չhҁԓ]|Π[ՋЪoƏ]|Ϫ[ʢƩʊՅ]|ӻ[ҺԈͽϼ]|ʝ[ՉLfU]|Ծ[ϟrՋ]|þ[ɋեͼ]|ӿ[ѤɹÞ]|բ[ՌՑSѿ]|ҡ[λՄɢԄ]|ɸ[ȻՃaҵ]|д[ϠИǷ]|ճ[ωϫл]|ɀ[ҹҤʟɜ]|л[ճeљ]|Ϥ[ϟЪƺՋ]|c[ԳYҦի]|Ռ[Oʌբȿ]|ն[ԳǂYI]|Ʌ[ԅϛՈթ]|ҝ[yɞʫv]|p[ƜRt]|ƣ[էƏɒo]|Ҷ[Ҹɉgj]|A[УձɔЉ]|Þ[ȹϿӿ]|Ƿ[дЋԒ]|k[QԶȿʌ]|ջ[ՒӺЉ]|Ɇ[ʊѧϥɟ]|ʢ[ςϪɮȾ]|ѭ[ДϢϙԂ]|ʘ[ЏƜt]|ѹ[ʇʯփƈ]|ʟ[Ԅȶɀɢ]|ϯ[ҏƋʮџ]|լ[ԿɷѸ]|Ƹ[ՊʙƆȝ]|N[ɹʞdѤ]|ς[ЦϿʢƩ]|ǂ[eƎљն]|ѧ[ɆEҁЩ]|ɴ[ѠҔԀ]|Ʉ[ɐfCU]|ҹ[ԄҀէɀ]|Ւ[ջPϻ]|ѥ[ɢλaՃ]|o[ΠտЖƣ]|g[BҶʮǝ]|Կ[լѪȹ]|Џ[ʘIY]|Y[ctЏն]|Ҡ[ȺDGԅ]|Ѧ[Щҁҳh]|Ѻ[HϬӄ]|ɹ[NЦϿӿ]|ԓ[ƛƅΔȸ]|f[OƅɄʝ]|L[ʝʊՅϥ]|ϼ[yӻλՄ]|џ[ζժiϯ]|ҩ[SɃȽՑ]|Ʃ[Ϫμbς]|դ[փƐӃΦ]|Ѯ[ӶӺЉɔ]|ƻ[ɉԋϙM]|ѩ[ҺϗͽЖ]|ʊ[μɆϪL]|Ж[ɒʓѩo]|B[ƕҸgϭ]|ԅ[ҠɅƪȽ]|ɔ[ʞѮAb]|ϗ[ЋʓԒѩ]|Ɔ[ӷMƸԋ]|љ[лǂI]|ȸ[ɥԓhկ]|q[ƐɿϚɂ]|Ҹ[шҶBѾ]|ʡ[ҴƾEՊ]|Ԏ[dχԷ]|j[ϚnǝҶ]|Ҧ[uըcϧ]|ϻ[ՒЉԉձ]|ʙ[ƸԼɣM]|ե[ʁþԺ]|Ƞ[PHҨ]|Φ[ɰդiժ]|Њ[ɢaѬȶ]|b[ɔƩЦУ]|Չ[ʝƅϥΔ]|ϧ[ԶҦWQ]|Ճ[ѥɸȵՎ]|Ҩ[ɧԉȠʬ]|ҁ[ΔѧѦϥ]|Ց[ҩƛղբ]|ɿ[qԼɣƱ]|μ[УƩɟʊ]|e[ωǂGл]|Һ[Ћʄѩӻ]|ѯ[dѤχ]|Ԓ[Ƿюϗ]|ҵ[ɸɺŋւ]|տ[Ջʓro]|ϙ[ѭƻҳш]|R[իԱp]|Ɯ[pʘ]|r[Ծюտ]|ƈ[ɊѹF]|M[ʙnƆƻ]|i[փʇΦџ]|ƾ[ձУʡɟ]|ɝ[ѸȾɐU]|ю[Ԓʓr]|Д[hҳѭɥ]|a[Њѥւɸ]|Յ[LUϪȾ]|ϭ[ѬBѾȴ]|Ѹ[Ѫɝխլ]|D[ԃȽҠS]|Ⱥ[ԃuƎҠ]|Ȼ[ŋȵɤɸ]|э[ʌԶҷɋ]|Ѥ[ѯӿN]|ԃ[ȺDȿQ]|ȵ[ҜȻՃv]|S[բȿҩD]|Ղ[ҤwΩղ]|ɢ[ѥҡʟЊ]|ɣ[Ϭɿȝʙ]|Վ[yvλՃ]|Ϭ[ɣʬƱѺ]|Ӄ[ϣxΨդ]|թ[ƏɅЪՀ]|ȝ[ʬƸɧɣ]|Ԁ[ɤɴŋ]|ѿ[ƅOƛբ]|H[ȠʬѺ]|F[ֆƈʯ]|Ѫ[ѸȾɮԿ]|է[ʈƣϞҹ]|ʯ[ѹFɎΨ]|ŋ[ȻҔԀҵ]|ɤ[ԀҜȻ]|ԉ[ҴPҨϻ]|ͼ[ȡɷþ]|t[իʘpY]|Ϣ[ѭմѾш]|Э[щԲԻ]|ɮ[ʢѪϿȹ]|ϫ[ƺճϟ]|Ѭ[Њւϭҥ]|Լ[Ϛnɿʙ]|Ξ[ζɊɏ]|Է[ԎӺӶ]|Q[ϧkԃu]|ւ[ҵaѬȴ]|Ր[ѠҏҔƋ]|ը[իԱWҦ]|ʓ[տϗюЖ]|K[щИ]|Ӻ[ԷѮջ]|x[чӃԏ]|И[KɌд]|ʬ[HҨȝϬ]|Ա[RըԺ]|ɧ[ȝҴՊҨ]|n[jɉMԼ]|C[ʌҷɄO]|W[ϧըʁԺ]|h[ДѦΔȸ]|ϥ[ՉLɆҁ]|Ъ[ΠՈϤթ]|կ[Ωղƛȸ]|ζ[џΞʇƋ]|Ҝ[ɤҎȵ]|Զ[ϧkʁэ]|d[ԎNѯӶ]).){3,}\3

여기에서 테스트하십시오 : http://regex101.com/r/kF2oQ3/1

(크리켓 소리)

응시자가 없습니까? 스포일러를 게시 한 사람이 어떤 유형의 문제인지 이해할 수있을 정도로 오랫동안 봤다는 증거없이 스포일러를 게시하는 것은 정말 실망스러운 일입니다.

나는 나중에 게시하기 위해 완전한 설명을 작성하고 있지만 누군가 나를 이길 경우 더 행복 할 것이라고 생각합니다.

나는 그것이 "계산적으로 어렵다"아니라고 말했다 때 ... 그것은 이다 한는 NP 완전 문제의 경우, 아니지만 인스턴스입니다.

힌트 : 연필과 종이 퍼즐의 한 유형입니다. 그러나 연필과 종이 만으로이 문제를 해결할 수 있다면 (정규 표현식을 인쇄에 적합한 형식으로 디코딩 한 후) 상당히 감동 할 것입니다.

스포일러 시간

여기에는 여러 레벨의 스포일러가 있습니다. 정규 표현식을 아직 해결하지 않은 경우 첫 번째 스포일러 블록 만 읽은 후 다시 시도하십시오. 정규 표현식과 일치하는 실제 키는 마지막 스포일러 블록 뒤에 있습니다.

이 정규 표현식은 Slitherlink 퍼즐을 인코딩합니다 .

진행 상황을 파악하고 정규식을 Slitherlink 그리드로 변환하면 평균 Slitherlink보다 어렵다는 것을 빨리 알게 될 것입니다. 16x16 정사각형 그리드에 있으며 일반적인 10x10보다 큽니다. 0단서 가없고 상대적으로 부족한 것도 약간 특이 3합니다. 0님과 3함께 일하기 가장 쉬운 단서이므로 많은 정보를주고 싶지 않았습니다.

slitherlink 퍼즐

부패의 두 번째 층 :

Slitherlink 퍼즐을 풀 때 더욱 놀라운 결과를 얻을 수 있습니다.이 Slitherlink에는 두 가지 이상의 솔루션이 있습니다. 일반적인 Slitherlink 솔버이고 고유 한 솔루션을 가정하여 추론하는 습관이 있다면 혼란 스러울 수 있습니다. 그렇다면 사기꾼이고 이것이 처벌입니다! 퍼즐 해결사의 역할 중 일부는 솔루션이 몇 개나 있는지 알아내는 것입니다.

부패의 최종 층 :

마지막 트위스트 : Slitherlink에 대한 2 가지 솔루션은 대부분 동일하지만 하나는 다른 것보다 약간 더 깁니다. 짧은 것을 찾아야합니다. 긴 것을 발견하고 정규 표현식과 일치하도록 문자열로 인코딩하면 문자열의 길이는 257 자입니다. 경로는 256 개의 노드를 통과하지만 루프를 닫으려면 끝에 첫 번째 노드를 반복해야합니다. 그리고 만약 당신이 그 거리를 가졌다면, 내가 실수했다고 생각하고 그 여분의 인물을 세는 것을 잊었을 것입니다. 아니! 그리고 / 또는 잡았다! (및 / 또는 Boosh! 및 / 또는 Kakow!)

짧은 솔루션은 길이가 254 세그먼트이며 키인 255 자의 문자열로 인코딩됩니다. 루프의 모든 노드에서 시작하여 시계 방향 또는 시계 반대 방향으로 진행할 수 있기 때문에 254 * 2 = 508 개의 가능한 답변이 있습니다.

슬리 더 링크 솔루션

불일치 : bananabananabanana
일치 : ƜpRԱԺեþɋэʌkȿՌOfɄCҷɐխɷլԿѪɮȹÞӿѤNɹЦʞӶdѯχԎԷӺջՒϻЉAɔbУƾձҴԉҨʬHѺӄӾԏxчɎֆFƈɊΞζџiփΨӃϣɂƱϬɣɿqϚɰƐդΦժʮgBƕȴւҵɺҏϯƋՐѠɴҔŋԀɤȻɸaЊѬҥѾҸшɉҶjnMʙƸՊʡEɟμƩςʢϪʊLՅȾɝUʝՉϥҁѧЩӷƆԋҳϙѭϢմԂɥȸhΔԓƛѿբՑҩSDȽԅҠGeωƪՈɅϛɃwҀҤՂΩßɜȶʟɀҹԄҡλѥՃȵҜҎɞԲЭщɌИдϠʄԻʫҝyϼӻҺЋϗѩͽɒʈէϞՀթЪΠƏƣoտʓюrԾϟϤƺϫճлљIնǂƎԳuȺԃQϧԶʁWըիcYЏʘƜ
증명 : http://regex101.com/r/pJ3uM9/2


72 시간 내내 축하합니다! 이제 키를 표시하여 크래킹으로부터 답변을 잠글 수 있습니다. 당신이 할 때까지 대답은 여전히 ​​금이 갈 수 있습니다.
Martin Ender

나는 시도했지만 그것이 평면 인 것을 찾지 못했습니다 ...
jimmy23013

14

Perl flavour, 158 [크랙]

나의 첫 번째 시도는 다음과 같습니다.

(?(R)|^(?=[a-z]))((?!.*(?&K))(((?|([?-K])|(?'K'$)|(?'k'j'k'?)|(?'k'C[^_^]{3,33}))(?(3)\3|3)){3}(?(R)R(-.-)|(?R))(?'k'<grc>-(?!(?&k))\4(?(R)|\$\4(?5)$)))|(?R))

ideone.com에서 테스트

(?(R)|^(?=[a-z]))바로 그 첫 번째 문자는 소문자해야합니다
(?!.*(?&K))아스키 범위에서 문자를 포함 할 수 없습니다 문자열 [?-K]
(?|...|(?'k'j'k'?)|...)일치 j'k(다른 그룹은 본질적으로 훈제 청어이다)
(?(3)\3|3){3}재귀 3 그룹을 일치, 또는 '3'재귀의 3 단계 후, 3 회 반복
(?(R)...|(?R))오버 재귀 전체 정규 표현식을 한 번 또는 몇 문자와 일치합니다. 다시
...(?!(?&k))...생각 [?-K]하지만
(?(R)|...$)재귀 후 기억할 수 없으며 일부 그룹
|(?R)을 일치시키고 일치하지 않는 경우 문자열을 종료하면 무한 재귀 시간입니다 .D


4
경기 : j'k3j'kj'k3j'kj'kj'k3j'k3j'kj'k3j'kj'kj'k3R-k-<grc>-j'k<grc>-j'k$j'k-k-비 일치 : HOLYCRAPTHATWASEVIL(에서 사용할 수 일치 ideone.com/pXaGaX 증명 용)

16
이 문제를 해결하려고 노력하고 반 정도되었을 때마다 perl regexp 엔진에 대해 버그 보고서 2 개와 문서 패치 3 개를 보낼 준비가되었습니다. (그리고 다른 것들을 위해 우리 모두)

7
멋진 키와 정규 표현식에 이모티콘이 있으면 +1[^_^] (-.-)
justhalf

@ WumpusQ.Wumbley 잘 했어요! 나는 강도 가이 하나를 이길 것 같아 :(
grc

3
내 이전의 의견은 대부분 농담 이었지만 설명이 좋을 것입니다. 이름 캡처 그룹을 사용하면 내부 (?|...)까다 롭습니다하지만 되어 문서화. 에서 통과 참조 perlre그 시작 Be careful when using the branch reset pattern in combination with named captures.트릭은 같은 수 있지만 다른 이름이있는 그룹이 있다는 것입니다 같은 그룹 반면, 같은 이름을 가지고 있지만 다른 번호가 그룹을 다른 그룹 .

12

JS 풍미, 9998 바이트 [균열]

^(?!.*(.).*\1)(?=M)((?=!7|!D|!a|!§|!¾|!Ö|!ù|!Ě|!į|!Ň|"C|"s|"t|"¡|"°|"»|"è|"ñ|"÷|"ķ|"ļ|"Œ|#W|#k|#l|#o|#q|#¶|#À|#Â|#Æ|#č|%!|%1|%O|%ÿ|%Ĕ|%Ğ|%Ī|%ĭ|&e|&q|&Õ|&æ|&ü|&đ|&Ĩ|'%|'`|'k|'¯|'É|'í|'þ|'ė|'Ğ|'ĩ|'IJ|'ļ|'ł|,%|,'|,l|,ª|,®|,¸|,¹|,ã|,õ|,Ċ|,Ġ|,Ī|,İ|,Ņ|-U|-V|-»|-Ï|-Þ|-ì|0_|0u|0°|0Ġ|0İ|0ł|1#|1-|1g|1å|1é|1ą|1Ļ|1ń|2B|2O|2¬|2ë|2ò|2õ|2Ğ|2ĩ|2į|2IJ|2ļ|3d|3²|3Ï|3Þ|3ß|3ç|3ø|3ĉ|3ķ|3ĸ|3Ŀ|4c|4£|4ß|4ã|4Ċ|4ģ|4Ĩ|4ő|4Œ|5&|5Q|5û|5Ā|5ě|5ĩ|6ú|6Ķ|6Ł|7Q|7V|7e|7²|7Á|7Þ|7à|7đ|7Ġ|7ĵ|8w|8¯|8¾|8ņ|8ő|9H|9Y|9i|:6|:s|:¬|:ð|:ü|:Ĉ|:Ċ|:Ĵ|:ĸ|:Ŀ|;X|;®|;¯|;²|;¸|;Ó|;à|;ĥ|;Œ|<-|<t|<å|<ø|<Į|<Ľ|<ō|=&|=l|=¨|=Á|=Ý|=Č|=Ĩ|=Ń|>-|>±|>¸|>Ä|>à|>ð|>ó|>Ī|@B|@F|@_|@³|@´|@Ó|@Ü|@ã|@û|@Ğ|@ğ|@Ĭ|@İ|@Ŀ|A5|AV|A_|Ax|A¹|AÅ|AĞ|AĶ|Aņ|Aō|B¼|BÂ|Bä|Bç|BĊ|Bį|Bİ|BĻ|BŅ|C1|C<|CG|Cy|C~|C¼|Cì|Cù|Cō|DT|DU|Dc|Dj|D¤|DÂ|DÑ|DĀ|Dİ|E,|E¬|E¼|E×|Eā|Eė|Eń|FZ|Ft|F»|F¿|FÈ|FØ|Fç|Fì|Fć|FĬ|Fı|FŅ|Gj|Gl|Gv|G¯|Gâ|Gï|GĖ|Gę|GĦ|Gĭ|H8|HB|HS|Hu|H¥|HÃ|HÌ|Hø|HĆ|HĒ|HĬ|Hĭ|I=|It|I©|Iæ|IĿ|Iō|J1|J3|J5|JQ|JÉ|JÔ|J×|Jă|JIJ|K-|KP|KÄ|Kî|Kā|KĐ|Kġ|KĨ|KĴ|L!|LÐ|Lá|LĚ|LĠ|M5|M¿|MÅ|Må|MĈ|MŊ|N,|N2|N5|NB|Nh|NÂ|NØ|NÜ|NĖ|Nĝ|NŃ|O;|Of|O¯|O¸|Oå|OĈ|Oď|Oē|OIJ|P7|PQ|Pp|P£|Pđ|PĴ|Pŀ|Q7|QR|Q¥|QÝ|Qî|Qī|Qĸ|Qŀ|Qő|R0|RA|RI|RN|R¥|R¼|Rö|Rû|RĬ|RĮ|RŎ|S;|SC|ST|Sd|Sy|S§|TX|Td|Tw|Tª|T¿|Tõ|U0|U:|UÊ|Uĉ|Uę|UĢ|UĦ|Uį|UĶ|Uň|V:|Vq|Vs|V¦|VÂ|Vó|Vþ|Wh|WÅ|WÉ|Wê|Wô|Wģ|Wň|X:|XI|XS|X`|Xâ|Xċ|Xė|XĠ|Xģ|Y"|YX|Yb|Yn|Yo|Y£|Y§|YÌ|YÎ|YÚ|Yá|Yă|YĜ|Yĥ|YĿ|Yʼn|Z6|Z:|Z;|Z¶|Zå|Zæ|Zċ|Zĺ|ZŊ|_,|_-|_c|_g|_à|_ĉ|_Ħ|_ł|`I|`z|`ð|`ă|`IJ|`ij|a4|a9|aF|a½|aä|añ|aď|aĝ|aĸ|b&|b7|b¸|bÝ|bë|bĺ|bņ|bŊ|c&|cP|cr|cÄ|cÑ|cÖ|cČ|cę|cĩ|cIJ|cķ|cĿ|d"|dI|d¥|d¦|dä|dģ|eK|e²|eý|eą|eČ|eĔ|eIJ|eĶ|eń|fM|fm|f¥|fÇ|fÒ|fæ|fì|fć|fě|fĝ|g!|gN|gx|gz|gÍ|gĚ|gĞ|h"|h¬|h¶|hä|hì|hï|hĆ|hņ|hŋ|hŏ|i'|i9|i¢|i¤|iÓ|iÖ|iā|iĕ|iĝ|iį|iĶ|jH|jT|j£|jµ|j·|jø|jĸ|jŐ|k0|k2|kA|k~|k¨|k½|kÙ|l&|lX|lc|ln|l£|l¥|lµ|lÃ|lå|lé|lĩ|lŌ|lŒ|m-|mW|mÐ|mĘ|mĮ|mĸ|n!|n2|nJ|nU|n¬|n½|nĆ|nĒ|nĔ|nĭ|nŇ|o5|o<|oD|oM|oÖ|oĂ|ps|pz|pº|pê|pĢ|pĥ|pIJ|qK|qa|q§|qÛ|qç|qý|qă|qĒ|qĴ|qĶ|qń|rA|re|rj|r§|r«|r¿|rÃ|rß|rò|rĔ|rĖ|rĢ|rķ|sD|sc|sÍ|sĀ|tT|tW|ta|t£|t¯|t±|tÊ|tÑ|tĚ|tļ|uV|ua|ub|uf|u¦|u´|u»|u¾|uË|uØ|uĞ|uĪ|uĹ|v:|vi|vw|v§|v½|vÄ|vÈ|vÌ|vù|vĮ|vļ|vʼn|vŎ|w!|w0|wZ|wg|wÞ|wæ|wò|wù|wĥ|wħ|wŎ|xD|x©|x®|xá|xû|xģ|xľ|xł|yC|ya|yr|y²|yÉ|yò|yĆ|yĠ|yĵ|yŒ|zM|zi|z¯|zø|zú|zć|zđ|~5|~Y|~¨|~º|~Û|~å|~ê|~ô|~ü|~ą|~ĥ|~Ī|~İ|~Ľ|~ō|¡J|¡±|¡¼|¡Ê|¡Ë|¡Ñ|¡ã|¡Ă|¡Ġ|¡Ĩ|¡ī|¡Œ|¢@|¢G|¢±|¢º|¢ç|¢Đ|¢İ|¢Ŀ|£F|£e|£Þ|£ä|£Ĵ|¤P|¤p|¤¯|¤µ|¤þ|¤ď|¤Ģ|¤ī|¥Z|¥¤|¥È|¥Ñ|¥û|¥Ď|¦T|¦Y|¦Z|¦a|¦b|¦e|¦q|¦r|¦¡|¦³|¦ĩ|¦IJ|¦ĺ|§b|§n|§w|§¿|§Ç|§Đ|¨3|¨Ã|¨Ë|¨Î|¨ë|¨÷|¨Č|¨ġ|¨Ī|¨Ĺ|¨ł|¨Œ|©I|©Z|©Ý|©ë|©ü|©ġ|©ŋ|ªP|ªo|ªr|ª¨|ª¯|ª²|ª¾|ªÇ|ªÔ|ªÙ|ªĉ|«K|«p|«£|«¨|«©|«¬|«®|«Õ|«Þ|«ß|«ö|«Đ|¬!|¬j|¬ª|¬¼|¬À|¬Ã|¬Ì|¬ú|¬ő|®#|®´|®É|®č|®đ|®ī|®ʼn|¯9|¯g|¯n|¯¹|¯È|¯Ē|¯ę|¯ġ|°N|°d|°k|°m|°s|°²|°È|°Î|°ê|°ó|°ʼn|±%|±R|±Y|±r|±æ|±Ŀ|±ń|²D|²H|²U|²×|²ã|²ä|²ç|²ą|²ħ|³`|³Ë|³ã|³ë|³ò|³ô|³ø|³Ċ|³Ĥ|³Ŀ|´~|´§|´Ê|´è|´Ķ|´Ŏ|µ:|µC|µ¢|µØ|µó|µĠ|µģ|µĤ|¶!|¶0|¶7|¶Y|¶¤|¶À|¶Ö|¶Ħ|¶ő|·p|·Á|·Ç|·ë|·î|·Ļ|·Ŋ|¸X|¸Z|¸¦|¸÷|¸ú|¸Đ|¸ĝ|¹,|¹>|¹M|¹Z|¹a|¹¢|¹Ì|¹×|¹Ø|¹þ|¹ĉ|¹Ĩ|º>|ºj|ºá|ºç|ºý|ºć|»2|»c|»°|»Ä|»ñ|»Ġ|»Ŋ|¼3|¼F|¼c|¼d|¼x|¼y|¼Ä|¼É|¼û|¼Č|¼ē|¼Ĩ|¼Ĭ|¼Ĵ|¼Ĺ|½k|½Ø|½ø|½ħ|¾2|¾:|¾L|¾¿|¾Á|¾ñ|¾ô|¾÷|¾đ|¾ĥ|¾Ń|¿D|¿«|¿ö|¿ø|¿Ĕ|¿ę|¿Ļ|¿ō|À3|ÀW|À°|ÀÆ|Àđ|ÀĘ|ÀĞ|Àģ|Àİ|Á§|Áé|Áõ|ÁĜ|Áĝ|ÁĪ|Áʼn|Â&|ÂB|ÂM|¿|Âø|Âħ|Âĺ|ÂĻ|ÂŁ|Âʼn|Ã`|Ãt|â|é|ÃĆ|ÃĖ|Ãĥ|Ãĩ|Ä_|Ä¥|ÄÌ|ÄÞ|Äð|ÄĆ|Äİ|ÄŁ|Å@|ÅY|Å«|ÅĄ|Åı|Åĸ|Æ;|ÆK|Æv|Ƶ|ƹ|ƽ|ÆÇ|ÆÛ|Æõ|Æü|ÆĆ|ÆĤ|Çd|Ǻ|ÇĔ|Çě|Çģ|ÇĶ|ÇĽ|Èd|Èz|È~|È´|Ƚ|ÈÂ|Èæ|Èõ|ÈŅ|ÉH|ÉO|ÉÌ|Éï|ÉČ|Éę|ÉĬ|Éĭ|ÉĴ|ÉŎ|Ê%|Ê6|ÊI|Êk|Êy|ʳ|ÊÁ|Êñ|Êą|ÊŃ|Ë!|ËH|Ëh|˺|Ë»|ËÆ|Ëğ|ËŌ|Ì3|Ì7|ÌG|Ìp|Ì«|Ìè|Ìï|ÌĮ|ÌŎ|ÍZ|Íd|Í©|ÍÖ|Íá|Íê|Íø|Íā|ÍŊ|Î-|Î_|ÎÊ|Îæ|Îó|Îù|ÎĀ|ÎĐ|Îġ|Îĭ|ÎŇ|Ï"|Ï5|Ï7|ÏA|ÏH|Ïl|ϱ|Ϲ|ÏÈ|ÏØ|ÏÚ|ÏÛ|ÏĻ|Ïʼn|ÐR|з|ÐÀ|ÐÓ|ÐĒ|Ðě|ÐĶ|Ðľ|Ñ©|ѵ|ÑÅ|ÑÈ|Ñʼn|ÒV|ÒÇ|Òĉ|Òħ|ÒŃ|Ó2|ÓD|ÓÎ|Óç|Ó÷|Óù|ÓĈ|Óķ|ÔE|ÔJ|Ôf|Ôy|ÔÆ|ÔÞ|Ôâ|ÔĂ|ÔĨ|Õ3|ÕG|Õh|Õ¹|ÕÁ|ÕÐ|Õÿ|Õğ|Õī|Ö7|ÖB|Öª|Ö¼|Öÿ|Öħ|Öij|×6|×>|×f|×¢|×µ|×·|×Â|×Ê|×Ñ|×ã|ØG|د|ØÄ|ØÊ|Øé|Øë|ØĊ|ØŇ|ØŐ|Øő|Ù:|Ùh|Ùx|Ù²|Ùč|Ùē|Ùę|Ùě|ÙĨ|ÙŇ|ÚE|Úq|Ú®|ÚÄ|ÚÒ|ÚÜ|Úä|Úí|Úı|Úķ|Û'|ÛW|Ûo|Ût|ÛÓ|Ûô|Ûõ|Ûû|Ûʼn|Ûŋ|Ü!|ÜJ|ÜÆ|ÜŐ|ÝR|Ýg|Ýq|Ýu|ÝÜ|Ýß|Ýð|Ýø|Ýč|ÝĶ|Ýʼn|Þº|ÞÝ|ÞĂ|Þą|Þć|ÞĠ|ÞĨ|ßu|ßÀ|ßė|à4|àS|à`|àk|à§|àé|àø|àĊ|àę|àģ|àĬ|á3|á£|á¶|áÄ|áÏ|áÑ|áâ|áü|áČ|áĽ|áņ|áŌ|â#|âY|â£|âº|âÓ|âġ|âĭ|âı|âŐ|âŒ|ã,|ã1|ã7|ã8|ãé|ãĭ|ä3|ä6|äN|ä¢|ä©|ä¬|äÏ|äĖ|äį|äŏ|åN|å¡|å¾|åØ|åë|åû|åč|åě|æ7|æT|æt|æ¸|æá|æï|æā|æij|ç2|çA|çJ|çl|ç¥|ç¬|çĝ|çĸ|èl|èq|èÓ|èÙ|èČ|èĖ|èĩ|èņ|èʼn|èő|éV|éZ|é®|é´|éí|éó|éû|éą|éě|éĭ|éŃ|ê5|êv|ê«|ê¶|êº|êÃ|êÔ|êİ|ëB|ëb|ë¤|ë¨|ëÎ|ëę|ëĞ|ì#|ì,|ì=|ì>|ìQ|ìS|ìV|ìº|ìā|ìġ|íJ|íV|í~|í¶|íò|íø|íă|íė|íĭ|î<|î=|îD|îR|îµ|îÚ|îÛ|îå|îê|îþ|îĒ|îĜ|îğ|ï%|ï,|ïa|ïu|ïÀ|ïÁ|ïá|ïĄ|ïą|ïċ|ïġ|ïĿ|ïŁ|ïŌ|ð6|ðE|ðp|ð¬|ðÞ|ðä|ðĚ|ðğ|ðļ|ñ1|ñ2|ñX|ñi|ñá|ñú|ñû|ñü|ñį|ñŊ|òB|ò«|ò¿|òÝ|òê|òď|ó5|óÄ|óÇ|óÈ|óÓ|óÕ|óĨ|óļ|ô4|ôh|ôÖ|ôî|ôþ|ôğ|ôŅ|õo|õ¢|õ¶|õÆ|õÓ|õä|õČ|õĕ|õģ|ö7|ö@|ön|ö¢|öÉ|öÒ|öÛ|öâ|öĝ|÷-|÷J|÷p|÷Ò|÷Ģ|÷ĭ|÷ı|÷ʼn|ø,|øo|ø¥|øÆ|øç|øè|øù|øĤ|øĥ|øħ|øň|ù7|ù9|ùs|ùu|ù¹|ùÍ|ùĆ|ùę|ùě|ùĹ|úG|úÅ|úÕ|úÖ|úÜ|úã|úç|úĂ|úĦ|û%|û;|ûR|ûh|ûu|ûz|û´|ûÐ|ûë|ûń|ûŊ|ü_|ü²|üê|üē|üğ|üł|üŅ|ý8|ý¨|ý©|ýÍ|ýÜ|ýĄ|ýċ|ýĩ|ýı|ýIJ|ýĸ|ýł|ýň|ýŎ|þ;|þD|þJ|þT|þr|þ·|þè|þĆ|ÿO|ÿÒ|ÿæ|ÿð|ÿć|ÿğ|ÿŇ|ĀA|ĀR|Ā_|Āv|Āá|ĀĘ|Āģ|Āİ|ā6|āM|ā¸|āä|āĮ|ĂX|ĂÁ|ĂÕ|ĂĚ|Ăķ|ĂĹ|ă"|ă°|ă¸|ăÉ|ăĆ|ăĚ|ăğ|ăĸ|ăĻ|ăŃ|ĄG|ĄJ|ĄK|Ą`|Ąc|Ąd|Ąg|Ąl|Ą³|ĄÄ|ĄÊ|ĄÌ|Ąú|ĄĽ|ą;|ąL|ąc|ąd|ąo|ąr|ą®|ą±|ąÄ|ąÅ|ąÇ|ąÍ|ą×|ąĈ|ąĎ|ąĐ|ąĩ|ąŌ|Ć´|Ƹ|Ć¼|ĆÑ|ĆØ|Ćí|ĆĊ|Ćņ|ĆŌ|ć4|ćx|ćy|ć¦|ć«|ćù|ćŃ|Ĉ&|Ĉ8|ĈE|ĈK|Ĉn|Ĉ¨|Ĉà|Ĉé|Ĉû|Ĉđ|Ĉĥ|ĈĪ|Ĉī|Ĉņ|ĉ@|ĉa|ĉÇ|ĉ×|ĉĩ|ĉň|Ċ#|Ċb|Ċt|Ċ»|ĊÁ|ĊÚ|Ċä|Ċÿ|Ċĝ|Ċĩ|Ċį|ċ'|ċD|ċ¶|ċÖ|ċê|ċþ|ċğ|ċņ|ČM|Čs|Č£|ČĨ|Čį|č±|čÖ|čè|čć|čğ|čń|čʼn|Ď`|Ď¡|Ď·|Ď¾|Ď¿|Ďą|Ďij|Ďŋ|ď"|ď5|ď8|ď=|ďD|ďs|ďØ|ďÚ|ďí|ďġ|ďĩ|ďļ|ĐF|ĐS|Đg|Đk|Đn|Đv|Đ~|ĐÖ|ĐÚ|ĐÜ|Đâ|ĐĞ|đA|đf|đ´|đ¸|đ¿|đÈ|đÖ|đà|đĽ|đŀ|đŌ|Ē%|ĒH|ĒÍ|ĒĹ|ĒĻ|ĒŁ|ĒŃ|ĒŇ|ē;|ēG|ēa|ēe|ēq|ē¶|ē»|ē÷|ēň|Ĕ"|Ĕ4|ĔÃ|Ĕý|Ĕą|ĔĆ|ĔĚ|ĔĞ|ĔĨ|ĕ"|ĕm|ĕw|ĕ¨|ĕ®|ĕÌ|ĕÑ|ĕĤ|Ė#|ĖR|Ėe|Ėu|Ė~|Ė¯|Ėĩ|ĖĬ|ėH|ė¹|ėö|ėú|ėÿ|ėĨ|Ęs|ĘÝ|Ęą|ĘČ|Ęĝ|Ęī|Ęĺ|Ęʼn|ęA|ęk|ęp|ę»|ęè|ęą|ęĐ|ęĨ|Ě'|Ě9|Ěe|Ěm|Ěo|Ě£|Ěª|Ě¾|Ěå|Ěë|Ěă|ĚĎ|ĚĜ|ĚĞ|ěP|ěx|ěê|ěî|ěö|ěĂ|ěĤ|ěĭ|ěļ|Ĝ%|ĜÜ|ĜĽ|ĝJ|ĝh|ĝ¹|ĝÃ|ĝÈ|ĝĖ|ĝĞ|ĝŇ|ĝŒ|Ğ&|Ğe|Ğs|ĞÖ|ğX|ğ²|ğ´|ğ¼|ğÙ|ğò|ğĂ|ğđ|ğĕ|ğĨ|ğĬ|ĠB|Ġc|Ġµ|ĠÈ|Ġè|Ġì|Ġđ|Ġě|ġ5|ġ<|ġH|ġm|ġº|ġÒ|ġü|ġă|ġĶ|ġŀ|Ģ;|Ģ¤|Ģ«|ĢÍ|ĢØ|Ģù|Ģă|ĢĐ|Ģđ|ģ-|ģL|ģ«|ģë|ģþ|ģċ|ģČ|ģĨ|ģĻ|Ĥf|Ĥª|Ĥñ|ĥM|ĥN|ĥU|ĥf|ĥz|ĥ»|ĥõ|ĥň|Ħ`|Ħj|Ħu|Ħ°|Ħ´|ĦÁ|ĦÈ|ĦÕ|Ħæ|ĦĤ|ħ4|ħp|ħ¡|ħ¦|ħ¶|ħß|ħç|ħĴ|ħĵ|ĨC|Ĩ°|ĨÂ|ĨÌ|Ĩç|Ĩõ|ĨĔ|Ĩŏ|ĩ8|ĩl|ĩt|ĩw|ĩċ|ĩđ|ĩĥ|ĩī|ĩŅ|Ī4|Ī9|ĪP|Īz|Ī±|ĪÅ|ĪÈ|ĪÝ|Īä|Īđ|ĪĦ|ĪĬ|ĪĽ|īb|īl|ī¥|ī¦|īÌ|īì|īČ|īĎ|īĐ|Ĭ#|Ĭ4|ĬF|Ĭ¤|Ĭê|Ĭí|Ĭû|Ĭĝ|ĬŌ|ĭ1|ĭK|ĭL|ĭz|ĭ¡|ĭ¯|ĭÌ|ĭâ|ĭĘ|ĭě|ĭĺ|ĮM|ĮR|Įd|Įx|Į¤|ĮÃ|ĮË|ĮÚ|Įå|ĮĤ|ĮĦ|Įī|į&|įD|įI|į¥|į«|įÉ|įÕ|įÛ|įĉ|įđ|įĒ|İQ|İi|ݬ|ݾ|İÕ|İ×|İĄ|İĬ|İľ|ı4|ıa|ıd|ıe|ıf|ı¡|ıĐ|ıĖ|ıIJ|IJ:|IJT|IJU|IJm|IJÛ|IJķ|IJŎ|ij0|ijb|ij¢|ij«|ijé|ijí|ijĎ|ijĘ|ijķ|Ĵ#|ĴF|ĴG|Ĵµ|Ĵ¹|ĴÈ|ĴÏ|Ĵý|Ĵþ|ĴĖ|ĵ8|ĵE|ĵK|ĵ¦|ĵ±|ĵÙ|ĵó|ĵõ|ĵĹ|Ķ6|ĶE|Ķl|Ķm|Ķ£|Ķ²|ĶÅ|Ķ÷|ĶĀ|Ķă|ĶĆ|ķv|ķ«|ķå|ķĢ|ķŌ|ĸ9|ĸH|ĸ¼|ĸè|ĸý|ĸĕ|ĸį|ŧ|Ĺ·|ĹÇ|ĹÈ|Ĺġ|Ĺĩ|ĺ#|ĺ6|ĺp|ĺr|ĺu|ĺæ|ĺí|ĺĖ|Ļ@|ĻI|Ļn|Ļ£|Ļ¶|ĻÂ|Ļú|ĻĮ|ĻŎ|ļ=|ļK|ļO|ļ_|ļ´|ļÀ|ļÄ|ļó|Ľ>|ĽC|ĽD|ĽG|ĽZ|Ľk|Ľr|Ľ¼|ĽÌ|Ľâ|ĽĮ|ĽŒ|ľf|ľÙ|ľÞ|ľĂ|ľī|ľł|ľņ|ĿÊ|Ŀď|Ŀđ|ĿĚ|Ŀĵ|ĿĻ|Ŀŏ|ŀC|ŀM|ŀ®|ŀà|ŀð|ŀõ|ŀČ|ŁE|ŁÁ|ŁÄ|Łõ|Łķ|ŁĿ|ł4|łG|łu|ł¬|łÏ|łò|łČ|łč|łĐ|łŌ|Ń6|Ń¿|ŃÅ|ŃË|ŃÚ|Ńü|Ńě|Ńņ|ń4|ń<|ńE|ńx|ń»|ńÄ|ńď|ńĺ|Ņ,|ŅP|Ņe|Ņn|Ņo|Ņ©|Ņ¯|Ņ½|ŅÛ|ŅĂ|ņî|ņð|ņô|ņĈ|ņī|ņĬ|ņı|Ň8|Ň:|ŇD|ŇT|Ň_|Ňd|Ňu|Ňª|Ňā|Ňć|ŇĈ|Ňň|ňK|ňL|ň¬|ňÇ|ňÏ|ňþ|ňĐ|ňĠ|ňŐ|ʼnQ|ʼn_|ʼnf|ʼnÉ|ʼnË|ʼnĨ|ʼnŃ|Ŋ0|ŊM|ŊW|ŊÔ|ŊĠ|ŋC|ŋH|ŋK|ŋÍ|ŋÒ|ŋØ|ŋÞ|ŋı|ŋĹ|Ō,|Ōl|Ō³|Ōò|Ōā|ŌĖ|ŌĚ|ŌĬ|ŌĮ|Ōĸ|ŌŒ|ōJ|ō¿|ōÀ|ōÝ|ōʼn|Ŏ8|Ŏ;|ŎQ|ŎV|Ŏ§|ŎÄ|ŎÏ|ŎĎ|ŎŇ|ŏ=|ŏD|ŏV|ŏ¹|ŏÈ|ŏÒ|ŏč|ŏĐ|ŏī|ŏĿ|ŏʼn|Ő2|Ő<|ŐC|ŐX|Őg|Ől|Őp|Ő®|Őİ|ő8|ő¹|őÀ|őó|őć|őĊ|őĖ|őĦ|őķ|őĸ|őŀ|ŒB|Œv|ŒÀ|ŒÒ|Œā|Œĉ|Œė|ŒĜ|ŒĦ|Œķ|Œľ).){255}Ň$

Regex101에서 테스트

일치하는 각 문자열은에서 M로의 해밀턴 경로입니다 Ň.
나는 이것이 충분히 안전하지 않다는 것을 안다. 하드 해밀턴 경로 문제를 생성하는 방법을 모르겠습니다. 솔루션이 너무 많습니다. Martin Büttner가 말했듯이 Mathematica는 즉시 그렇게했습니다 . 그러나 이것은 COTO 이외의 또 다른 NP-complete 접근법입니다. 이 아이디어를 개선하고 새로운 답변을 게시하십시오.
원래 생성 한 솔루션은 다음과 같습니다. https://regex101.com/r/tM1vX8/2

내가 생성 한 솔루션 :

MĈàękÙēGâġ<øÆv:ĴÏĻĮ¤ĢùĹ·îĜĽDÂŁEā6ĶĆŌĸ¼yò¿Ĕýı¡Ë!į&qKPpzđȽħ¶YÌïÁéVþèlåN2O¸úÜŐİľfćx®čńďļ=¨3d"÷ĭ¯9i'ĞsĀAÅĄ³`ðĚmĘĝŒBç¬ő¹>-ìS§nUĉňĠěĤª¾ôŅ,ĊtÊIĿĵ±RĬíăÉČĨŏĐÖij0°²ã1gÍáÑʼnŃÚÒÇģLÐĒ%ĪĦu¦añû´~ą;ĥ»créüêºjµó5ĩċğĕwŎÄ¥ĎŋØëÎæTXėH8ņībŊÔÞÝßÀWhäĖeIJÛõÓķ«ö7QŀCōJ×¢@_ł4£FZĺ#oĂÕÿŇ

3
일치 : regex101.com/r/wK9hI1/1 참조 일치 하지 않음 : good_job_user23013!
harius

14
CPU를 태우고 운이 좋기를 바라고있는 사람들과 며칠 안에 P = NP를 증명하려는 사람들이 2 개의 캠프로 나뉘어져 있다고 상상합니다.

1
@ WumpusQ.Wumbley 그리고 Mathematica를 사용하는 사람들. ;)
Martin Ender

2
해리 우스는 자신이 어떻게 금을 내는지 자세히 설명 할 수 없기 때문에 어떻게했는지 간략하게 설명하겠습니다. 패턴은 실제로 256 개의 정점 (문자로 표시됨)과 2270의 가장자리 (허용되는 문자 쌍으로 표시됨)를 갖는 방향 그래프를 인코딩합니다. 각 일치 항목은 해당 그래프에서에서 M까지 의 해밀턴 경로 Ň입니다. Mathematica에는 기능이 FindHamiltonianCycle있습니다. 우리는 이것을 Ň -> M새로운 가장자리를 추가하고 연결 Ň하고 통과 시켜 통과하는 사이클로 바꿀 수 있습니다 M. 고맙게도 Mathematica는 그러한주기를 즉시 발견합니다. :)
Martin Ender

1
글쎄, 난 3 살이지만 어쨌든 집에서 만든 패스 파인더를 완성하는 느낌이 들었습니다. : 그것은 나에게이 준 regex101.com/r/nT2xM6/1

10

JS 호환 RegEx-3,571 바이트 [균열]

나는 ... 최소한 ... 하나는 ... 깨지지 않았다 ... o \ __ / o

[^,;]|^(.{,255}|.{257,})$|^(?!.*,;,,;;)|^(?!.*,;;,,;)|^(?!.*..,;;;,..,.)|^(?!.*.,.;.;.,.,,)|^(?!.*....,,....;;.;.;)|^(?!.*;.{8};,;;;..)|^(?!.*.{8};;.{6};,.,;)|^(?!.*..;....,.;;.{5};;...)|^(?!.*;,.;.{7},...;.{6};...)|^(?!.*...,.,..,,...,.{7};....)|^(?!.*.,;.;.{11};.{9};..,.)|^(?!.*.,.{6},....;.{11};,...,)|^(?!.*..;.{5};....,.{6};,.{12};.)|^(?!.*,,.,,.{8};.{11};.{10})|^(?!.*...,.{9};..,....;.{6},...;.{8})|^(?!.*.{6},.{8},.{6},.{8},..;.,....)|^(?!.*.{7};..;.{5},....;.{10};...;.{9})|^(?!.*..;.{7},.{5};;.{12},.{13},.)|^(?!.*.{5},..;...;.{5};..;.{6},.{22})|^(?!.*.{10},.{8},.{6},;.{14};.;.{6})|^(?!.*..,.;...,.{19};.;..;.{22})|^(?!.*.{6};..;.{14},,.{11};....,.{13})|^(?!.*.{8},.{12};.{19},.{6},;.{6},....)|^(?!.*.,.{11},...,.{7},.{16},.{11},.{6})|^(?!.*.{15};.{7};..;..,.{24},.{7},...)|^(?!.*...,,.{25};...;...;.{19},.{7})|^(?!.*.{26},....,....,.{15},.{6},.{6};....)|^(?!.*.{6};.,.{28};.{6},.{21},.;..)|^(?!.*.{21};..;..,.{22},.{21};,..)|^(?!.*.{5};.{22};,.{17};.{18},,.{8})|^(?!.*.{9};.{25};,.{20},.{6},.{14};.)|^(?!.*.,.{9},.{8};.{8};.{10};.,.{38})|^(?!.*.{18};.{8},.,.;.{5};.{6},.{41})|^(?!.*.{15},.{16};.{7};.{17};.{8};..,.{15})|^(?!.*.{18};.,.{25};..,..;.{13};.{24})|^(?!.*.{10};.{16},.{33};...;.{17},....,..)|^(?!.*.{13},.{46},.{9},.{11},,.,.{10})|^(?!.*.{14},.{33},.{18};....,.;.{16},....)|^(?!.*.{16};....;,.{8},.{30},.{31},.{6})|^(?!.*.{9},;.{15};.{22};.{30},.{16};...)|;.,,;;.;|,;,;,.,.|.;;,.;;;|;.;,,,.;|,...;.;.,,.;.|,.,.;.{5},,;|...;;....;;;;|;..,,,.;..;..|..;;,,..;.{7};.|;..,.,,...;...,...|...;;,.,.;.;.{6}|.;...;,....;.;...,|.;.{8};,.{6},.;.;|.{5},...,...;...;.;..;|...;....;..,..,.;..;...|...;.{5};,.{5},...,.;|;.,.{12},..;;.{7};|...;.{5},..;;.{9},..;.|.;,,..;.{13};....;..|.,;.{15},,...,.,..|.{8};.,....,...,..,.{9};|...;.;.{11},..,...;....;...|.,.,.{9};;....;..,.{10}|.{5};.,;....,.{15};..,|....;.{10};.;....,.{10},;...|....;.{8};;.{6},...;.{5};.{6}|..,;;.{16};....,;.{10}|.{18};.{9};,.,.,..;.|.{11},.{10};.;.;.{10};....,|....;.{11},.{10},..;.,.;.{8}|..,....,.;.{5},.{9},.{7};.{9}|.{7};.;.{5},.{13};.;.{7};...|.{5},.{15};;.{5},.{15},..;|.{12};...;..,.,..;.{5},.{17}|.{12},..;...;.{22},.,..,|.{10},.{11},.,.;.{11};;.{8}|.{11},.{9},.{5},...,.{14};.;....|;.{22};....,.;.{10};.{10};|.{13};...;.{13},.{6};.,.{10};.|.{11};....;.{17},.{9},.{5};,.|,.{14},.{12};.{6};...;.{14};...|..;.;.{19},.{16},.{5};.{6},...|.{27};..,;.{8};;.{8};.{7}|,.{6};.,.{20},.{13},.;.{11}|.{12};.{9},.{8};,.,.{17},.{10}|;.{22};..;.{5},..;....,.{22}|.{6},.{19};.{22};;,.{5};.{5}|;.{5},.{10};..;.;;.{39}|.{11};.{7};.;.{23};.{19};.;|,.{13};.{12},.,.{27};.{6},...|...;.;.{9};.{18};.;.{27},...|...;,.{12},..;.{28},.{15};..|....;.{8};..;...;.{17},.{19},.{14}|.{8};.{29};.{17};.{5};.{5};;...|...,..;.{14},.{8};.{12};.{18},.{10}|..;.;.{7};.{17},.{11},.{24},.{5}|;.{17},.;.{29};.{9};....;.{12}|.{5},..,.{6},.{16};;.{15},.{28}|...,.{12};..;.{10};.{31};.{14};|.{24},.{6},.{22},.,..,.{10};.{7}|.{10},.{12},.{5};.{12},.{7};.{23};.{8}|.{19};.,.{6},.{22},,.{7};.{22}|.{27};,.{14},..,.{7};.{15},.{12}|....;.{18},.{22},,..,.{27};....|...,.{11},.;.;.{9},.{46},.{11}|.{19},....,.{23},.{5},.{7};.{14},.{10}|.{19};,.{11};..,.{11};.{23};.{16}|.{11};.{34},.{14},.{9},.;.{13};|.{11};....,.{41},.{9};;.{8};.{14}|.{5};.;.,.{5};...;.,.{71}|.{6};.{13};....;....;.{20};.{24},.{16}|.{26};,.{19};....;.{11},.;.{26}|.{9},.{9},.{21},.{14};.{10};.{16};.{13}|.{10},.{5},.{9};.{13},...,.{24},.{28}|.{12},.{7};.{8};.{6};;.{36};.{23}|....;.{10},.{21};.{10};.{20},.{10},.{17}|.{19},.{7},.{17},.{9};.{13},.{22};.{10}|....,.{41};.{5},..,.{21};.{6};.{18}|.{25};....;.{28},.{12},.{19};.{8};.|.{10};....,.,.{22};.{11};.{44},.{5}

거의 모든 문자열을 즉시 해결합니다. 모든 JS 콘솔에서 테스트 할 수 있습니다.

이 짐승을 깨뜨리는 사람에게 +100


1
도전 수락 ...
Unihedron

10
경기 : ThatWasActuallyFun. 불일치 : ,,;,;,,;,;;;,;,;,;;,,,,;,,,;,;;,,,,,,;;,,,,;;,;,,,;,;;;;,;;,;;,;,,;,,;,;;;,;,;,;;,,,;,;;;;,;,;;;,;,,;,,,;,,,,;,;;;;;;,,,,,;,;,;;;;;,;;;,;;,,,;;;,,;,;;,,,;,,,,,,;,;,,;;,,;;,,,;,;;,,,;,,;;,;,;,;;;;,,;,;,,;;;;;,,;,,;;,,;,,;;,,,,;,,;,,;;,;;;,,,,,;,,,,,,,,;,,,,.
nneonneo

5
부디! 하지마! 있다,이다! 그래서! 빨리!
TwiNight

6
친구, 당신은 미쳤어 요,이 RegExp에는 122 개의 교대가 있으며 그 중 40 개는 부정적
예견입니다.

2
@nneonneo : 까다로운 효율적인 SAT 솔버. > ___ <그러나 문제를 변형시키고 도구를 활용할 수있는 도구가 있습니다. 나는 약 19 시간 인 최대한 빨리 100 명을 답변 해드립니다.
COTO

10

PCRE-96 바이트 UTF8, 구분 기호 없음, 플래그 없음

[ 네가 노 ] 는 현명한 사람 이기 때문에

(?<Warning>[You] \Will (*FAIL)!|\So just (*SKIP)this one!|\And (*ACCEPT)defeat!|[^\d\D]{16,255})

여기서 볼 것이 없습니다.


1
경기 : So just *SKIPthis one!; 일치하는 항목이 없습니다 :This string is not accepted. This string is not accepted. This string is not accepted. This string is not accepted. This string is not accepted. This string is not accepted. This string is not accepted. This string is still not accepted. Snow leopards FTW.
COTO

이것은 PCRE 구문이 아닙니다. 일반 Perl 구문입니다. (역 추적 수정자는 PCRE, AFAIK에서 작동하지 않습니다)
nneonneo

6
경기 : Do just this one!. 불일치 : WellThatWasTooEasy. (내 컴퓨터에서 Perl 5.12 및 Perl 5.18 모두에서 테스트)
nneonneo

@nneonneo 맞아요! PS : * VERBS는 5 년 이상 PCRE에 존재하며 실제로 문서화가 충분하지 않습니다.
CSᵠ

@COTO 경기가 잘못되었습니다. NonMatch는 괜찮습니다.
CSᵠ

8

JS 호환 RegEx-733 바이트 [균열]

메트릭스를 뒤집어 두 번째로 시도해 봅시다. 거둔 정규 표현식이지만 비교적 작은 키 (가장 중요한 것은 256 바이트 제한 이내)입니다.

[^a-e]|^(?:.{0,33}|.{35,}|.{11}.(?!babcde).{22}|.{17}.(?!daacde).{16}|.{23}.(?!ecacbd).{10}|.{29}.(?!ab).{4}|.{31}.(?!cd)..|(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.).(?!\4\8\1\2\3\10|\6\3\11\2\9\1|\6\2\9\3\4\11|\8\10\6\5\3\1|\1\8\4\5\3\7).{22}|(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.).{6}.(?!\15\14\16\19\21\12|\17\12\22\13\16\15|\19\14\12\20\18\21|\16\22\19\14\20\12|\21\19\13\18\15\22).{16}|(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.).{12}.(?!\31\32\24\28\26\23|\33\25\30\29\27\32|\28\27\23\24\29\30|\31\33\23\29\26\32|\26\28\25\24\23\33).{10}|(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.).{18}.(?!\34\39|\37\38|\34\37|\36\42|\43\41|\35\38|\40\35|\44\42).{4}|(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.).{20}.(?!\51\45|\53\54|\47\46|\45\54|\50\51|\53\45|\52\51|\52\48|\48\55)..)$

거의 모든 문자열을 즉시 해결합니다. RegExr에서 테스트되었습니다.

확장 (편의상) :

[^a-e] |
^(?:
    .{0,33}|
    .{35,}|
    .{11}.(?!babcde).{22}|
    .{17}.(?!daacde).{16}|
    .{23}.(?!ecacbd).{10}|
    .{29}.(?!ab).{4}|
    .{31}.(?!cd)..|
    (.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.).(?!\4\8\1\2\3\10|\6\3\11\2\9\1|\6\2\9\3\4\11|\8\10\6\5\3\1|\1\8\4\5\3\7).{22}|
    (.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.).{6}.(?!\15\14\16\19\21\12|\17\12\22\13\16\15|\19\14\12\20\18\21|\16\22\19\14\20\12|\21\19\13\18\15\22).{16}|
    (.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.).{12}.(?!\31\32\24\28\26\23|\33\25\30\29\27\32|\28\27\23\24\29\30|\31\33\23\29\26\32|\26\28\25\24\23\33).{10}|
    (.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.).{18}.(?!\34\39|\37\38|\34\37|\36\42|\43\41|\35\38|\40\35|\44\42).{4}|
    (.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.).{20}.(?!\51\45|\53\54|\47\46|\45\54|\50\51|\53\45|\52\51|\52\48|\48\55)..
)$

모두에게 행운을 빕니다. ;)


5
일치 : aaaabaaacaaadaaa, 불일치 :cacdbbcabdeababcdedaacdeecacbdabcd
jimmy23013

@ user23013 : 균열이 예상되었지만 그렇게 빨리는 아닙니다. 종이에 했습니까?
COTO

1
예. 처음 두 개의 긴 표현식 뒤에는 두 가지 가능성 만 남습니다. 그리고 세 개 이후에 알려지지 않은 한 문자 만 있으므로 솔루션을 얻기 위해 몇 번 시도 할 수 있습니다.
jimmy23013

8

.NET 플레이버, 60 바이트 [균열]

^((\d)(?!(|(\d\d)*\d|(\d{3})*\d\d|(\d{5})*\d{4}|\d{6})\2))+$

Regex Storm으로 테스트했습니다 .


3
경기 : 1234567890012345. 불일치 : 1111222233334444.
jimmy23013

8
٠߀०০੦૦୦௦౦೦൦๐໐༠၀႐០᠐᥆᧐᭐᮰᱀᱐꘠꣐꤀꩐0따라서 이들은 모두 .NET에서 숫자로 간주됩니다.
jimmy23013

2
그건 미쳤어 요, 그 중 절반은 브라우저에 제대로 나타나지 않습니다
Sp3000

7

파이썬 풍미 : 211 바이트 [금이 간]

참고 :이 답변은 최대 키 길이에 대한 규칙 변경 전에 게시되었습니다.

나는 이것으로 공을 굴릴 것이라고 생각했다.

(((((((((((((((\)\\\(58\)5\(58\(\\5\))\15\)9)\14\\919\)\)4992\)5065\14\(5)\13\\\14\\71\13\(\13\)4\\\13\\)\12\12\\28\13)\11)\10\\7217)\9\\)\8\\04)\7\)\(\8\()\6\(183)\5)\4\)65554922\\7624\)7)\3\)8\(0)\2\4\\8\\8)\1

( RegExr에서 테스트 )


캐릭터의 간단한 역 참조 폭발 \()0123456789


허용되는 문자열이 대략적이라고 말할 수 있습니다. 길이는 7 백만 자입니다. 실제로 어떻게 든 그것을 표현하면 어딘가에 7MB 텍스트 파일이 있습니까?
COTO

그래, 그것은 갈 수있는 유일한 방법입니다. 나는 해독하기 어려운 것으로 시작하겠다고 생각했지만 그 속임수는 출력 생성이었습니다. 분 제한이 제대로 설정되지 않았지만 훨씬 더 길었을 것입니다 : P
Sp3000

RegExr.com의 정규 표현식과 일치하는 유일한 문자열이라고 생각하는 것을 입력하면 Chrome 브라우저가 안정적으로 충돌합니다. Safari에서는 작동하지만 RegExr은 '시간 초과'를보고합니다. 온라인으로 성공적으로 테스트 했습니까?
Emil

@Emil Firefox에서 성공적으로 테스트했습니다. 그리고 나는 아직도 그것을 구하기 위해 기다리고 있습니다.
jimmy23013

5
내 키는 키가 5281064 바이트입니다. 여기에 파일 업로드 (
5MB

7

JS 호환 RegEx-12,371 바이트 [균열]

Martin의 격려와 다른 경찰이 600 + KB 정규식을 기꺼이 제출하고 있음을 알게 된 후, 나는 이것으로 한 번 더 뛰어 들기로 결정했습니다 ( 여기서 prettified version ).

거의 모든 문자열을 즉시 해결합니다. 모든 JS 콘솔에서 테스트 할 수 있습니다. 불행히도 크기는 많은 온라인 정규식 테스터가 테스트 할 수 없습니다.


Ahaha 나는 정규식 크기로 견과류를 가지려고 노력하지 않을 것입니다-이 도전은 어렵지만 : / @ user23013을 자극합니다
Sp3000

2
경기 : this was not NP-hard. 불일치 :nerdnydeprdoypoypwwwdprelwsprwssddayaeeeysyaaaypowroplsaoprdaolasnoylaeaeadeosladnnosyoywyesorlrydwddadoeyponneeyaaapesenaalnneydaewndplredlerwaawlnrssapapaopnrdwnslowdoanlrernpwyyarpprwnrssdlaopsnnrnnnardpaessldalroleswnnooarlpllasapsesaorardwreylayrr
nneonneo

방금 그것을 완전히 무력화하고 (파이썬에서 ~ 0.06 초가 걸렸습니다) 네 가지 허용 가능한 솔루션을 얻었지만 정규 표현식의 버그로 인해 정규 표현식은 더 많은 솔루션을 거부합니다. (기본적으로, 당신은 주어진 "substring"에있는 모든 문자가 사용
되는지

1
(최종 참고 사항 : regexpal.com 은이 정규식을 잘 처리합니다. 아마도 브라우저의 정규식 엔진을 사용하는 것 같습니다.)
nneonneo

1
12k 바이트를 사용하면 외부 소스에 연결할 필요가 없습니다. SE 답변은 최대 30k 자까지 가능합니다.
Martin Ender

7

.NET 플레이버, 458 바이트 [cracked]

^(?=[01]{10},[01]{10}$)(0|1((?<=^.)(?<l>){512}|(?<=^..)(?<l>){256}|(?<=^...)(?<l>){128}|(?<=^.{4})(?<l>){64}|(?<=^.{5})(?<l>){32}|(?<=^.{6})(?<l>){16}|(?<=^.{7})(?<l>){8}|(?<=^.{8})(?<l>){4}|(?<=^.{9})(?<l>){2}|(?<=^.{10})(?<l>){1})(?(l)(?<-l>(?=.*,(?:0|1(?<m>){512})(?:0|1(?<m>){256})(?:0|1(?<m>){128})(?:0|1(?<m>){64})(?:0|1(?<m>){32})(?:0|1(?<m>){16})(?:0|1(?<m>){8})(?:0|1(?<m>){4})(?:0|1(?<m>){2})(?:0|1(?<m>){1})$))|){1024})*,(?<-m>){669043}(?(m)(?!)|)

이것은 쉽다. 하지만 나중에 더 열심히 게시하겠습니다.

나는 암호로 안전한 답에 가깝다고 생각합니다.

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

이것은 기본적으로 정수 인수 분해에 관한 것입니다. 일치하는 문자열은 두 정수 A및 의 이진 표현이어야합니다 B. 의 각 1에 대해 A512, 256, ..., 1 회 그룹과 일치하며이를 l추가하기 위해 추가 할 수 A있습니다. 그리고 때마다 l, 그것은 일치 B내다 및 사용 B시간 그룹 m과 유사 Al. 그래서 m총 일치 A*B번. 마지막으로 그룹 m669043 번을 제거하고 더 이상 없는지 확인합니다 m. 따라서 A*B정확히 669043이어야합니다.

단순화를 위해 : 669043 = 809 * 827솔루션은이 두 숫자의 이진 형태입니다.

Regex 엔진은 숫자를 여러 번 늘려야하기 때문에이 방법은 너무 큰 숫자로는 작동하지 않습니다. 그러나 기본 289 큰 정수로 작업하기 위한 새로운 답변 을 게시 했습니다 . 1536 비트 길이의 제품이 있습니다.

에서 .NET 정규식의 균형 그룹 기능을 도입 또한 감사 마틴 있음 Büttner 그의 대답 .


이 아이디어, 와우 ...
Sp3000

4
경기 : 1100101001,1100111011. 불일치 :ThatsWhatIWantedToDo,Nice
nneonneo

1
유일한 문제는 일치가 기하 급수적으로 오래 걸리고 대상 정수가 반복 횟수로 표현되어야한다는 것입니다 (따라서 32/64/128 비트로 제한 될 가능성이 높습니다). 나는 Karatsuba 곱셈을 사용하여 이러한 제한을 극복하는 것에 대한 아이디어가 있지만 log (n) ^ 2 크기의
정규식을 얻습니다

1
@ Sp3000 pastebin.com/SW0YbQar 작동합니다. 왜 그런지 잘 모르겠습니다. 아마도 개발자는 빈 문자열을 반복적으로 일치시키는 것이 의미가 없다고 생각합니다.
jimmy23013

1
@ Sp3000 : 전혀 놀랍지 않습니다. 기본적으로 정규식 엔진에 800000+까지 계산하도록 요청합니다. 이것은 특히 느리게 진행될 것입니다 (특히 "카운팅"이 정규식 평가 기 가상 머신을 통해 수행 될 때).
nneonneo

6

JS 호환 RegEx-2,447 바이트 [균열]

나의 마지막 시도.

나는 이것이 깨지기 전에 적어도 몇 시간 동안 지속되기를 희망합니다. 그 후, 나는 포기한다. :피

[^a-f]|^(?:.{0,51}|.{53,}|.{11}.(?!d).{40}|.{12}.(?!a).{39}|.{13}.(?!a).{38}|.{14}.(?!f).{37}|.{15}.(?!d).{36}|.{16}.(?!a).{35}|.{17}.(?!d).{34}|.{18}.(?!c).{33}|.{19}.(?!f).{32}|.{20}.(?!d).{31}|.{21}.(?!d).{30}|.{22}.(?!d).{29}|.{23}.(?!f).{28}|.{24}.(?!d).{27}|.{25}.(?!b).{26}|.{26}.(?!f).{25}|.{27}.(?!f).{24}|.{28}.(?!e).{23}|.{29}.(?!c).{22}|.{30}.(?!c).{21}|.{31}.(?!b).{20}|.{32}.(?!d).{19}|.{33}.(?!e).{18}|.{34}.(?!c).{17}|.{35}.(?!a).{16}|.{36}.(?!a).{15}|.{37}.(?!e).{14}|.{38}.(?!b).{13}|.{39}.(?!f).{12}|.{40}.(?!d).{11}|.{41}.(?!f).{10}|.{42}.(?!c).{9}|.{43}.(?!f).{8}|.{44}.(?!e).{7}|.{45}.(?!c).{6}|.{46}.(?!b).{5}|.{47}.(?!b).{4}|.{48}.(?!f).{3}|.{49}.(?!a).{2}|.{50}.(?!d).{1}|....(.)(.)(.).....(?!\1|\2|\3).{40}|.(.).(.)..(.).....{1}.(?!\4|\5|\6).{39}|...(.)(.).....(.).{2}.(?!\7|\8|\9).{38}|......(.)(.).(.)..{3}.(?!\10|\11|\12).{37}|....(.)(.)(.).....{4}.(?!\13|\14|\15).{36}|..(.)(.)(.).......{5}.(?!\16|\17|\18).{35}|(.).(.)......(.)..{6}.(?!\19|\20|\21).{34}|..(.).....(.).(.).{7}.(?!\22|\23|\24).{33}|(.)..(.)(.).......{8}.(?!\25|\26|\27).{32}|...(.).....(.)(.).{9}.(?!\28|\29|\30).{31}|.(.)(.).....(.)...{10}.(?!\31|\32|\33).{30}|.(.)...(.)..(.)...{11}.(?!\34|\35|\36).{29}|(.)(.).....(.)....{12}.(?!\37|\38|\39).{28}|...(.).(.).(.)....{13}.(?!\40|\41|\42).{27}|..(.)(.)..(.).....{14}.(?!\43|\44|\45).{26}|(.).(.)....(.)....{15}.(?!\46|\47|\48).{25}|(.)..(.)...(.)....{16}.(?!\49|\50|\51).{24}|(.)(.)(.).........{17}.(?!\52|\53|\54).{23}|.(.)..(.)(.)......{18}.(?!\55|\56|\57).{22}|(.)...(.)..(.)....{19}.(?!\58|\59|\60).{21}|.......(.)(.)(.)..{20}.(?!\61|\62|\63).{20}|.(.).....(.).(.)..{21}.(?!\64|\65|\66).{19}|..(.)..(.)...(.)..{22}.(?!\67|\68|\69).{18}|..(.).(.).....(.).{23}.(?!\70|\71|\72).{17}|...(.).(.)..(.)...{24}.(?!\73|\74|\75).{16}|.(.)(.)(.)........{25}.(?!\76|\77|\78).{15}|(.).(.).....(.)...{26}.(?!\79|\80|\81).{14}|.....(.)..(.).(.).{27}.(?!\82|\83|\84).{13}|(.).(.).(.).......{28}.(?!\85|\86|\87).{12}|..(.)...(.)..(.)..{29}.(?!\88|\89|\90).{11}|(.)....(.)..(.)...{30}.(?!\91|\92|\93).{10}|....(.).(.).(.)...{31}.(?!\94|\95|\96).{9}|...(.)..(.)(.)....{32}.(?!\97|\98|\99).{8}|..(.)..(.)..(.)...{33}.(?!\100|\101|\102).{7}|..(.).(.)(.)......{34}.(?!\103|\104|\105).{6}|..(.)(.)..(.).....{35}.(?!\106|\107|\108).{5}|.(.).....(.)(.)...{36}.(?!\109|\110|\111).{4}|..(.)....(.)(.)...{37}.(?!\112|\113|\114).{3}|...(.)..(.)...(.).{38}.(?!\115|\116|\117).{2}|....(.)(.)....(.).{39}.(?!\118|\119|\120).{1})$

이전의 모든 제출물과 마찬가지로 즉시 해결됩니다. 이전 제출과 달리 RegExr에 비해 너무 깁니다.

넓히는:

[^a-f]|
^(?:
    .{0,51}|
    .{53,}|
    .{11}.(?!d).{40}|
    .{12}.(?!a).{39}|
    .{13}.(?!a).{38}|
    .{14}.(?!f).{37}|
    .{15}.(?!d).{36}|
    .{16}.(?!a).{35}|
    .{17}.(?!d).{34}|
    .{18}.(?!c).{33}|
    .{19}.(?!f).{32}|
    .{20}.(?!d).{31}|
    .{21}.(?!d).{30}|
    .{22}.(?!d).{29}|
    .{23}.(?!f).{28}|
    .{24}.(?!d).{27}|
    .{25}.(?!b).{26}|
    .{26}.(?!f).{25}|
    .{27}.(?!f).{24}|
    .{28}.(?!e).{23}|
    .{29}.(?!c).{22}|
    .{30}.(?!c).{21}|
    .{31}.(?!b).{20}|
    .{32}.(?!d).{19}|
    .{33}.(?!e).{18}|
    .{34}.(?!c).{17}|
    .{35}.(?!a).{16}|
    .{36}.(?!a).{15}|
    .{37}.(?!e).{14}|
    .{38}.(?!b).{13}|
    .{39}.(?!f).{12}|
    .{40}.(?!d).{11}|
    .{41}.(?!f).{10}|
    .{42}.(?!c).{9}|
    .{43}.(?!f).{8}|
    .{44}.(?!e).{7}|
    .{45}.(?!c).{6}|
    .{46}.(?!b).{5}|
    .{47}.(?!b).{4}|
    .{48}.(?!f).{3}|
    .{49}.(?!a).{2}|
    .{50}.(?!d).{1}|
    ....(.)(.)(.).....(?!\1|\2|\3).{40}|
    .(.).(.)..(.).....{1}.(?!\4|\5|\6).{39}|
    ...(.)(.).....(.).{2}.(?!\7|\8|\9).{38}|
    ......(.)(.).(.)..{3}.(?!\10|\11|\12).{37}|
    ....(.)(.)(.).....{4}.(?!\13|\14|\15).{36}|
    ..(.)(.)(.).......{5}.(?!\16|\17|\18).{35}|
    (.).(.)......(.)..{6}.(?!\19|\20|\21).{34}|
    ..(.).....(.).(.).{7}.(?!\22|\23|\24).{33}|
    (.)..(.)(.).......{8}.(?!\25|\26|\27).{32}|
    ...(.).....(.)(.).{9}.(?!\28|\29|\30).{31}|
    .(.)(.).....(.)...{10}.(?!\31|\32|\33).{30}|
    .(.)...(.)..(.)...{11}.(?!\34|\35|\36).{29}|
    (.)(.).....(.)....{12}.(?!\37|\38|\39).{28}|
    ...(.).(.).(.)....{13}.(?!\40|\41|\42).{27}|
    ..(.)(.)..(.).....{14}.(?!\43|\44|\45).{26}|
    (.).(.)....(.)....{15}.(?!\46|\47|\48).{25}|
    (.)..(.)...(.)....{16}.(?!\49|\50|\51).{24}|
    (.)(.)(.).........{17}.(?!\52|\53|\54).{23}|
    .(.)..(.)(.)......{18}.(?!\55|\56|\57).{22}|
    (.)...(.)..(.)....{19}.(?!\58|\59|\60).{21}|
    .......(.)(.)(.)..{20}.(?!\61|\62|\63).{20}|
    .(.).....(.).(.)..{21}.(?!\64|\65|\66).{19}|
    ..(.)..(.)...(.)..{22}.(?!\67|\68|\69).{18}|
    ..(.).(.).....(.).{23}.(?!\70|\71|\72).{17}|
    ...(.).(.)..(.)...{24}.(?!\73|\74|\75).{16}|
    .(.)(.)(.)........{25}.(?!\76|\77|\78).{15}|
    (.).(.).....(.)...{26}.(?!\79|\80|\81).{14}|
    .....(.)..(.).(.).{27}.(?!\82|\83|\84).{13}|
    (.).(.).(.).......{28}.(?!\85|\86|\87).{12}|
    ..(.)...(.)..(.)..{29}.(?!\88|\89|\90).{11}|
    (.)....(.)..(.)...{30}.(?!\91|\92|\93).{10}|
    ....(.).(.).(.)...{31}.(?!\94|\95|\96).{9}|
    ...(.)..(.)(.)....{32}.(?!\97|\98|\99).{8}|
    ..(.)..(.)..(.)...{33}.(?!\100|\101|\102).{7}|
    ..(.).(.)(.)......{34}.(?!\103|\104|\105).{6}|
    ..(.)(.)..(.).....{35}.(?!\106|\107|\108).{5}|
    .(.).....(.)(.)...{36}.(?!\109|\110|\111).{4}|
    ..(.)....(.)(.)...{37}.(?!\112|\113|\114).{3}|
    ...(.)..(.)...(.).{38}.(?!\115|\116|\117).{2}|
    ....(.)(.)....(.).{39}.(?!\118|\119|\120).{1}
)$

2
경기 : aaaabaaacaaadaaa. 불일치 : fdeacdbfbdcadaafdadcfdddfdbffeccbdecaaebfdfcfecbbfad.
jimmy23013

교체 (.)일치하는 문자로, 그 문자를 기준으로 정렬, 그것은 분명이 될 것입니다.
jimmy23013

1
이것은 NP- 완료이지만 암호로 안전하지는 않습니다. 그리고 너무 어렵게 만드는 제한 사항과 변수가 너무 많습니다.
jimmy23013

1
@ user23013 : 잘 연주했습니다. ;) 그리고 나는 이것이 이것이 SAT로 환원 될 수 있다고 믿는다. 이것이 나의 의도였다. 당신이 말한 것처럼, 거기에 충분한 비트가 없어서 어렵게 만듭니다.
COTO

5

파이썬 풍미 (721 바이트) [cracked]

"Parsing Problem v2"를위한 시간입니다 :

^(((?(8)S)(((?(9)I|\\)(?(3)\]|Z)((?(7)l|R)(((((((?(4)p)((?(7)x)(?(1)B|Z)(?(11)\()(?(9)X)(?(8)P|T)(?(6)a|E)((?(5)E)(((?(8)3|\[)((?(3)\(|1)((?(1)M|L)(?(3)v|b)(?(2)t|l)(?(1)q)(?(1)K|H)(?(2)\)|R)(?(3)O|K)(?(5)l|l)(((?(2)\[|3)((?(2)N)((?(2)\\)((?(1)E|\])(?(1)\[)([(?(1)Q)])(?(24)\[)(?(24)q))(?(24)g))(?(22)s|U)(?(22)H)(?(23)c|U))(?(24)Q)(?(24)Q)(?(24)H)(?(23)K|\[))(?(22)e|y))(?(24)\\)(?(21)P|4)(?(19)T)(?(24)\))))(?(24)M)(?(17)\()(?(24)2))(?(19)7)(?(21)t|X)(?(22)v))(?(24)\[)(?(19)A|L)(?(16)E|1))(?(19)1|c)(?(14)K|\\)(?(19)4|5)(?(24)\\)(?(20)r)))(?(24)B)(?(24)w)(?(24)5))(?(24)\())(?(24)\\))(?(24)T))(?(9)\[))(?(15)z|w))(?(24)K)\7F(?(24)m)(?(24)R))(?(24)\[))(?(24)h))(?(14)x|t)(?(3)R|M)(?(24)\])(?(24)w))(?(21)z|6)(?(16)r)()$

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


이 정규 표현식은 효과적으로 "숲의 나무를 숨 깁니다". 대부분의 정규 표현식은 (?(id)yes-pattern|no-pattern)지정된 ID를 가진 그룹이 존재하는지 여부에 따라 적절한 패턴과 일치 하는 표현식으로 구성됩니다 . 이러한 표현의 대부분은 키에 기여하지 않지만 일부는 기여합니다. 그러나 정규 표현식에 숨겨져 있지 않은 [(?(1):Q)]것은 실제로 문자 세트 이며 \7그룹을 추적해야합니다. 이 두 가지 모두 강조 표시와 함께 모든 편집기에 표시되지만 신중하지 않은 사람을 트립하기위한 것입니다.


이봐, 일 좀해야 겠어
stokastic

4
\ZRZTE[1LblHRKl3]?sHcKePT(7tvAE1K4r[zZTE[1LblHRKl3]?sHcKePT(7tvAE1K4rFxRzr성냥. a일치하지 않습니다
g.rocket

또한, 모든 가능한 일치의 세트는의 모두 (내 이전 코멘트)는 ?임의의 문자로 대체의(?(1)Q)
g.rocket

(Regex101에서는 경기가 실패했을 때 정확히 무엇을 일치 시켰는지 알려줍니다. 이로 인해 일치하는 물건을 찾는 것이 더 쉬워졌습니다 (적어도 내 솔루션에서 오타가 있음).
g.rocket

난 그냥 누락 된, 가까이 ?
stokastic

5

파이썬 풍미 (4842 바이트)

아이디어와 조언에 대한 @COTO 덕분에

내가 좋아 코토의 3-SAT 아이디어 @ 나는 내 자신의 정규식 그것을 기반으로 만들려고 줄 알았는데 너무 많이. 저는 3-SAT 이론에 익숙하지 않기 때문에 RNG 신들에게기도하고 충분한 제한이 있기를 바랍니다.

정규 표현식을 5000 자 미만으로 공정하게 유지하려고 노력했습니다. 명확하게 더 긴 정규 표현식은 해독하기가 쉽지 않지만 균열을 일으키는 것은 재미가 없습니다.

[^01]|^(.{0,81}|.{83,}|....0.{10}1.{22}0.{43}|....0.{14}0.{35}0.{26}|....0.{16}0.{5}1.{54}|....0.{17}1.{34}0.{24}|....1.{11}0.{41}1.{23}|....1.{12}1.{27}1.{36}|....1.{22}1.{38}1.{15}|....1.{30}0.{35}1.{10}|....1.{46}0.1.{28}|....1.{6}1.{65}0....|...0....1.1.{71}|...0.{18}0.{23}0.{35}|...1.{11}1.{33}1.{32}|..0...0.{53}1.{21}|..0.{30}1.{17}0.{30}|..1.{41}0.{10}0.{26}|.0.{13}0.{39}1.{26}|.0.{18}0.{49}0.{11}|.0.{27}1.{36}0.{15}|.0.{31}11.{47}|.00.{37}1.{41}|.1.{32}0.{31}1.{15}|.1.{38}0.{25}0.{15}|.1.{7}0.{38}0.{33}|.{10}0.{14}0.{15}0.{40}|.{10}0.{15}1.{15}1.{39}|.{10}0.{27}1.{11}1.{31}|.{10}0.{39}0.{7}0.{23}|.{10}0.{42}10.{27}|.{10}0.{9}0.{38}0.{22}|.{10}1.{45}1.{16}0.{8}|.{10}1.{47}0.{15}0.{7}|.{10}1.{59}0.{5}1.{5}|.{11}0.{11}0.{54}0...|.{11}0.{29}1.{35}0....|.{11}1.{32}0.{25}1.{11}|.{11}1.{48}1.{6}1.{14}|.{11}11.{50}1.{18}|.{12}0.{27}1.{18}0.{22}|.{12}0.{45}1.{7}1.{15}|.{12}1.{15}0.{42}1.{10}|.{13}0.{40}1...0.{23}|.{13}1.{20}1.{5}1.{41}|.{13}1.{22}0.{31}0.{13}|.{13}1.{24}1.{39}1...|.{13}1.{58}0.{8}0|.{14}0.{22}0....1.{39}|.{14}0.{23}0.{23}1.{19}|.{14}0.{53}10.{12}|.{14}1.{19}1.{11}0.{35}|.{14}1.{19}1.{21}1.{25}|.{14}1.{23}0.{14}0.{28}|.{14}1.{24}1.{12}1.{29}|.{14}1.{35}0.{22}0.{8}|.{14}1.{48}0.{15}1..|.{14}1.{58}0....1...|.{14}1.{65}11|.{14}1.{6}1.0.{58}|.{15}0...01.{61}|.{15}0.{12}0.{30}0.{22}|.{15}0.{15}0.{34}0.{15}|.{15}0.{30}1.{25}0.{9}|.{15}0.{31}0.{32}1.|.{15}0.{36}0.{25}1...|.{15}1.{14}1.{21}1.{29}|.{15}1.{16}1.{16}1.{32}|.{15}1.{20}0.{32}1.{12}|.{16}0.{35}1.{24}0....|.{16}0.{36}1.{15}1.{12}|.{16}1.{13}1.{22}0.{28}|.{16}1.{16}1.{14}0.{33}|.{16}1.{48}1.0.{14}|.{17}1.{29}1.{31}0..|.{17}1.{47}1.{8}0.{7}|.{17}1.{9}0.{20}0.{33}|.{18}0..0.{59}1|.{18}0.{33}1.{6}0.{22}|.{18}0.{36}1.{24}1.|.{18}0.{39}0.{17}1.{5}|.{18}1..0.{35}0.{24}|.{18}1.{16}0.{7}1.{38}|.{19}0.{17}0.{8}1.{35}|.{19}1.{42}00.{18}|.{20}0.{25}1.{31}1...|.{20}0.{43}1.{12}0....|.{20}0.{8}1.{40}0.{11}|.{20}00.{56}1...|.{20}1.{38}0.{7}1.{14}|.{21}0.{39}1.{16}0...|.{22}1....0.{44}1.{9}|.{22}1..1.{20}1.{35}|.{23}0.{39}1.{8}0.{9}|.{23}0.{8}1.{41}1.{7}|.{23}1.{18}1.{25}0.{13}|.{23}1.{20}0.{6}0.{30}|.{24}0.{17}1.{16}0.{22}|.{24}0.{21}1.{13}0.{21}|.{24}1...1.{49}0...|.{24}1.{5}0.{37}0.{13}|.{24}1.{8}1.{37}0.{10}|.{25}0.{36}0....0.{14}|.{25}1....0.{29}0.{21}|.{25}1....1.{10}1.{40}|.{25}1.{13}1.{13}0.{28}|.{25}1.{40}0.{7}0.{7}|.{26}0.{13}1.{21}0.{19}|.{26}0.{13}1.{25}1.{15}|.{27}0.{20}1.{11}0.{21}|.{27}0.{36}0.{6}0.{10}|.{27}1....1.0.{47}|.{27}1...0.{13}1.{36}|.{27}1.{10}0.{26}0.{16}|.{27}1.{30}1.{15}0.{7}|.{28}0.{14}1.{37}0|.{28}0.{21}1.0.{29}|.{28}0.{26}0.{16}0.{9}|.{28}1.{18}1.{23}1.{10}|.{29}0.{17}0.0.{32}|.{29}1.{24}0.{19}1.{7}|.{29}1.{46}1....0|.{30}1.{18}1.{9}0.{22}|.{30}1.{28}0....1.{17}|.{32}0.{25}1.{6}1.{16}|.{33}0.{22}1.{12}0.{12}|.{33}0.{6}0.{11}0.{29}|.{33}1.{5}1.{31}0.{10}|.{34}0.{13}0.{8}0.{24}|.{34}1...1.{35}0.{7}|.{34}1..1.{29}1.{14}|.{34}1.{38}01.{7}|.{34}1.{5}0.{40}1|.{34}1.{6}1.{38}1.|.{34}1.{7}0.{31}0.{7}|.{34}11...1.{42}|.{35}0.{19}0..0.{23}|.{35}1.{12}1.{24}0.{8}|.{36}0.{6}1.{17}1.{20}|.{36}0.{7}1.{17}1.{19}|.{36}0.{8}0.{13}1.{22}|.{36}1.{14}0.{9}1.{20}|.{37}0.{26}1.{16}0|.{37}1.{27}0.{10}0.{5}|.{38}1.{21}1.{7}1.{13}|.{39}0..0.{20}0.{18}|.{39}0.{15}0.{19}1.{6}|.{40}0....0.{28}1.{7}|.{40}0.{15}1.0.{23}|.{40}0.{5}1.{16}0.{18}|.{40}0.{8}1.{29}1..|.{40}00.0.{38}|.{41}0.0.{20}0.{17}|.{41}00.{32}0.{6}|.{41}1.{16}1.{21}1.|.{41}1.{8}1.{18}0.{12}|.{42}1.{31}1.{6}1|.{42}11.{27}0.{10}|.{43}0.{34}10..|.{44}1.0.{10}1.{24}|.{45}0.{9}0.{5}0.{20}|.{45}1.{12}0.{22}1|.{45}1.{17}1....0.{13}|.{45}1.{9}0...0.{22}|.{46}0.{11}1.{19}1...|.{46}1.{24}0.{5}0....|.{47}11.{8}1.{24}|.{48}0.{12}1....0.{15}|.{48}0.{15}0.{13}1...|.{48}1...0.{13}0.{15}|.{48}1.{11}0..0.{18}|.{48}11.{21}0.{10}|.{49}1.{7}1.{14}0.{9}|.{51}1.{12}1.{5}1.{11}|.{54}0.{13}0.{6}1.{6}|.{54}1.{11}1.1.{13}|.{56}0.{16}0..1.{5}|.{56}1.{11}0.{6}0.{6}|.{58}1....1.{6}0.{11}|.{5}0.{17}0.{42}0.{15}|.{5}0.{23}1.{26}1.{25}|.{5}0.{34}1.{22}0.{18}|.{5}0.{6}1.{13}1.{55}|.{5}1.{12}0.{31}1.{31}|.{5}1.{16}0.{39}1.{19}|.{5}1.{16}1.1.{57}|.{5}1.{24}1.{15}1.{35}|.{5}1.{24}1.{47}1...|.{66}0.0.{5}1.{7}|.{6}0....1.{24}0.{45}|.{6}0.{19}0.{7}1.{47}|.{6}0.{23}0.{14}0.{36}|.{6}0.{25}1.{41}0.{7}|.{6}0.{46}1.{22}0.{5}|.{6}0.{52}11.{21}|.{6}1.{35}10.{38}|.{7}0.{20}0.{16}0.{36}|.{7}0.{34}1.{20}1.{18}|.{7}0.{6}0.{36}0.{30}|.{7}0.{7}0.{15}0.{50}|.{7}0.{8}1.{42}1.{22}|.{7}1.{5}1.{56}1.{11}|.{7}1.{67}0..1...|.{8}0.{10}0.{38}0.{23}|.{8}0.{41}11.{30}|.{8}0.{9}1.{37}1.{25}|.{8}1.{50}1.{14}1.{7}|.{9}0..1.{55}0.{13}|.{9}0.{21}1.{42}0.{7}|.{9}0.{59}00.{11}|.{9}0.{9}0....1.{57}|.{9}00.{41}1.{29}|.{9}1....0.{20}0.{46}|.{9}1...0.{41}1.{26}|.{9}1.{30}0.{16}1.{24}|.{9}1.{30}0.{37}1...|.{9}1.{30}1.{14}1.{26}|.{9}1.{40}01.{30}|0.{17}1.{34}0.{28}|0.{23}1.{43}1.{13}|0.{30}1.{26}1.{23}|1.{13}00.{66}|1.{28}0.{42}1.{9}|1.{36}0.{35}1.{8}|1.{42}1.{32}1.{5}|1.{49}0.{16}0.{14}|1.{52}0.{7}0.{20}|)$

그리고 여기는 조금 더 읽기 쉬운 형태입니다.

[^01]|
^(
  .{0,81}|
  .{83,}|
  ....0.{10}1.{22}0.{43}|
  ....0.{14}0.{35}0.{26}|
  ....0.{16}0.{5}1.{54}|
  ....0.{17}1.{34}0.{24}|
  ....1.{11}0.{41}1.{23}|
  ....1.{12}1.{27}1.{36}|
  ....1.{22}1.{38}1.{15}|
  ....1.{30}0.{35}1.{10}|
  ....1.{46}0.1.{28}|
  ....1.{6}1.{65}0....|
  ...0....1.1.{71}|
  ...0.{18}0.{23}0.{35}|
  ...1.{11}1.{33}1.{32}|
  ..0...0.{53}1.{21}|
  ..0.{30}1.{17}0.{30}|
  ..1.{41}0.{10}0.{26}|
  .0.{13}0.{39}1.{26}|
  .0.{18}0.{49}0.{11}|
  .0.{27}1.{36}0.{15}|
  .0.{31}11.{47}|
  .00.{37}1.{41}|
  .1.{32}0.{31}1.{15}|
  .1.{38}0.{25}0.{15}|
  .1.{7}0.{38}0.{33}|
  .{10}0.{14}0.{15}0.{40}|
  .{10}0.{15}1.{15}1.{39}|
  .{10}0.{27}1.{11}1.{31}|
  .{10}0.{39}0.{7}0.{23}|
  .{10}0.{42}10.{27}|
  .{10}0.{9}0.{38}0.{22}|
  .{10}1.{45}1.{16}0.{8}|
  .{10}1.{47}0.{15}0.{7}|
  .{10}1.{59}0.{5}1.{5}|
  .{11}0.{11}0.{54}0...|
  .{11}0.{29}1.{35}0....|
  .{11}1.{32}0.{25}1.{11}|
  .{11}1.{48}1.{6}1.{14}|
  .{11}11.{50}1.{18}|
  .{12}0.{27}1.{18}0.{22}|
  .{12}0.{45}1.{7}1.{15}|
  .{12}1.{15}0.{42}1.{10}|
  .{13}0.{40}1...0.{23}|
  .{13}1.{20}1.{5}1.{41}|
  .{13}1.{22}0.{31}0.{13}|
  .{13}1.{24}1.{39}1...|
  .{13}1.{58}0.{8}0|
  .{14}0.{22}0....1.{39}|
  .{14}0.{23}0.{23}1.{19}|
  .{14}0.{53}10.{12}|
  .{14}1.{19}1.{11}0.{35}|
  .{14}1.{19}1.{21}1.{25}|
  .{14}1.{23}0.{14}0.{28}|
  .{14}1.{24}1.{12}1.{29}|
  .{14}1.{35}0.{22}0.{8}|
  .{14}1.{48}0.{15}1..|
  .{14}1.{58}0....1...|
  .{14}1.{65}11|
  .{14}1.{6}1.0.{58}|
  .{15}0...01.{61}|
  .{15}0.{12}0.{30}0.{22}|
  .{15}0.{15}0.{34}0.{15}|
  .{15}0.{30}1.{25}0.{9}|
  .{15}0.{31}0.{32}1.|
  .{15}0.{36}0.{25}1...|
  .{15}1.{14}1.{21}1.{29}|
  .{15}1.{16}1.{16}1.{32}|
  .{15}1.{20}0.{32}1.{12}|
  .{16}0.{35}1.{24}0....|
  .{16}0.{36}1.{15}1.{12}|
  .{16}1.{13}1.{22}0.{28}|
  .{16}1.{16}1.{14}0.{33}|
  .{16}1.{48}1.0.{14}|
  .{17}1.{29}1.{31}0..|
  .{17}1.{47}1.{8}0.{7}|
  .{17}1.{9}0.{20}0.{33}|
  .{18}0..0.{59}1|
  .{18}0.{33}1.{6}0.{22}|
  .{18}0.{36}1.{24}1.|
  .{18}0.{39}0.{17}1.{5}|
  .{18}1..0.{35}0.{24}|
  .{18}1.{16}0.{7}1.{38}|
  .{19}0.{17}0.{8}1.{35}|
  .{19}1.{42}00.{18}|
  .{20}0.{25}1.{31}1...|
  .{20}0.{43}1.{12}0....|
  .{20}0.{8}1.{40}0.{11}|
  .{20}00.{56}1...|
  .{20}1.{38}0.{7}1.{14}|
  .{21}0.{39}1.{16}0...|
  .{22}1....0.{44}1.{9}|
  .{22}1..1.{20}1.{35}|
  .{23}0.{39}1.{8}0.{9}|
  .{23}0.{8}1.{41}1.{7}|
  .{23}1.{18}1.{25}0.{13}|
  .{23}1.{20}0.{6}0.{30}|
  .{24}0.{17}1.{16}0.{22}|
  .{24}0.{21}1.{13}0.{21}|
  .{24}1...1.{49}0...|
  .{24}1.{5}0.{37}0.{13}|
  .{24}1.{8}1.{37}0.{10}|
  .{25}0.{36}0....0.{14}|
  .{25}1....0.{29}0.{21}|
  .{25}1....1.{10}1.{40}|
  .{25}1.{13}1.{13}0.{28}|
  .{25}1.{40}0.{7}0.{7}|
  .{26}0.{13}1.{21}0.{19}|
  .{26}0.{13}1.{25}1.{15}|
  .{27}0.{20}1.{11}0.{21}|
  .{27}0.{36}0.{6}0.{10}|
  .{27}1....1.0.{47}|
  .{27}1...0.{13}1.{36}|
  .{27}1.{10}0.{26}0.{16}|
  .{27}1.{30}1.{15}0.{7}|
  .{28}0.{14}1.{37}0|
  .{28}0.{21}1.0.{29}|
  .{28}0.{26}0.{16}0.{9}|
  .{28}1.{18}1.{23}1.{10}|
  .{29}0.{17}0.0.{32}|
  .{29}1.{24}0.{19}1.{7}|
  .{29}1.{46}1....0|
  .{30}1.{18}1.{9}0.{22}|
  .{30}1.{28}0....1.{17}|
  .{32}0.{25}1.{6}1.{16}|
  .{33}0.{22}1.{12}0.{12}|
  .{33}0.{6}0.{11}0.{29}|
  .{33}1.{5}1.{31}0.{10}|
  .{34}0.{13}0.{8}0.{24}|
  .{34}1...1.{35}0.{7}|
  .{34}1..1.{29}1.{14}|
  .{34}1.{38}01.{7}|
  .{34}1.{5}0.{40}1|
  .{34}1.{6}1.{38}1.|
  .{34}1.{7}0.{31}0.{7}|
  .{34}11...1.{42}|
  .{35}0.{19}0..0.{23}|
  .{35}1.{12}1.{24}0.{8}|
  .{36}0.{6}1.{17}1.{20}|
  .{36}0.{7}1.{17}1.{19}|
  .{36}0.{8}0.{13}1.{22}|
  .{36}1.{14}0.{9}1.{20}|
  .{37}0.{26}1.{16}0|
  .{37}1.{27}0.{10}0.{5}|
  .{38}1.{21}1.{7}1.{13}|
  .{39}0..0.{20}0.{18}|
  .{39}0.{15}0.{19}1.{6}|
  .{40}0....0.{28}1.{7}|
  .{40}0.{15}1.0.{23}|
  .{40}0.{5}1.{16}0.{18}|
  .{40}0.{8}1.{29}1..|
  .{40}00.0.{38}|
  .{41}0.0.{20}0.{17}|
  .{41}00.{32}0.{6}|
  .{41}1.{16}1.{21}1.|
  .{41}1.{8}1.{18}0.{12}|
  .{42}1.{31}1.{6}1|
  .{42}11.{27}0.{10}|
  .{43}0.{34}10..|
  .{44}1.0.{10}1.{24}|
  .{45}0.{9}0.{5}0.{20}|
  .{45}1.{12}0.{22}1|
  .{45}1.{17}1....0.{13}|
  .{45}1.{9}0...0.{22}|
  .{46}0.{11}1.{19}1...|
  .{46}1.{24}0.{5}0....|
  .{47}11.{8}1.{24}|
  .{48}0.{12}1....0.{15}|
  .{48}0.{15}0.{13}1...|
  .{48}1...0.{13}0.{15}|
  .{48}1.{11}0..0.{18}|
  .{48}11.{21}0.{10}|
  .{49}1.{7}1.{14}0.{9}|
  .{51}1.{12}1.{5}1.{11}|
  .{54}0.{13}0.{6}1.{6}|
  .{54}1.{11}1.1.{13}|
  .{56}0.{16}0..1.{5}|
  .{56}1.{11}0.{6}0.{6}|
  .{58}1....1.{6}0.{11}|
  .{5}0.{17}0.{42}0.{15}|
  .{5}0.{23}1.{26}1.{25}|
  .{5}0.{34}1.{22}0.{18}|
  .{5}0.{6}1.{13}1.{55}|
  .{5}1.{12}0.{31}1.{31}|
  .{5}1.{16}0.{39}1.{19}|
  .{5}1.{16}1.1.{57}|
  .{5}1.{24}1.{15}1.{35}|
  .{5}1.{24}1.{47}1...|
  .{66}0.0.{5}1.{7}|
  .{6}0....1.{24}0.{45}|
  .{6}0.{19}0.{7}1.{47}|
  .{6}0.{23}0.{14}0.{36}|
  .{6}0.{25}1.{41}0.{7}|
  .{6}0.{46}1.{22}0.{5}|
  .{6}0.{52}11.{21}|
  .{6}1.{35}10.{38}|
  .{7}0.{20}0.{16}0.{36}|
  .{7}0.{34}1.{20}1.{18}|
  .{7}0.{6}0.{36}0.{30}|
  .{7}0.{7}0.{15}0.{50}|
  .{7}0.{8}1.{42}1.{22}|
  .{7}1.{5}1.{56}1.{11}|
  .{7}1.{67}0..1...|
  .{8}0.{10}0.{38}0.{23}|
  .{8}0.{41}11.{30}|
  .{8}0.{9}1.{37}1.{25}|
  .{8}1.{50}1.{14}1.{7}|
  .{9}0..1.{55}0.{13}|
  .{9}0.{21}1.{42}0.{7}|
  .{9}0.{59}00.{11}|
  .{9}0.{9}0....1.{57}|
  .{9}00.{41}1.{29}|
  .{9}1....0.{20}0.{46}|
  .{9}1...0.{41}1.{26}|
  .{9}1.{30}0.{16}1.{24}|
  .{9}1.{30}0.{37}1...|
  .{9}1.{30}1.{14}1.{26}|
  .{9}1.{40}01.{30}|
  0.{17}1.{34}0.{28}|
  0.{23}1.{43}1.{13}|
  0.{30}1.{26}1.{23}|
  1.{13}00.{66}|
  1.{28}0.{42}1.{9}|
  1.{36}0.{35}1.{8}|
  1.{42}1.{32}1.{5}|
  1.{49}0.{16}0.{14}|
  1.{52}0.{7}0.{20}|
)$

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


정규식은 S0과 1의 82 자 문자열 을 찾고 있습니다. 그것은 (De Morgan의 적용 후) S[index1] != digit1OR S[index2] != digit2OR 형식의 많은 수의 검사를 수행 S[index3] != digit3하여 3-SAT 절을 구성합니다. 정규식 크기는 단서 수에서 선형이며 키의 문자 수에서 대수입니다 ( .{n}표기법 으로 인해 ). 불행히도 단서의 수를 확보하려면 키의 크기와 관련이 있어야하며,이 방법으로 깰 수없는 키를 만드는 것이 가능하지만 결국에는 긴 정규 표현식이 될 것입니다.


1
경기 : x. 불일치 :0011001101000000000111010001101101011000010011011010000000010001011111000100010000
nneonneo

경기 : aaaabaaacaaadaaa. 불일치 : 011100110010001010111101001010010011110010011010110101010001101100101111111111+ 0000. 몇 초 느리게 ...
jimmy23013

와우는 빠르다-너희들은 그것을 무차별 적으로 강탈 했는가?
Sp3000

1
@ Sp3000 거의 수동으로 수행했습니다 ... 놀랍게도 통계 방법이 작동했습니다.
jimmy23013

2
@ Sp3000 : 나는 그것을 무력화했지만 재미가 없었습니다. 대신 시퀀스를 3SAT로 변환하고 minisat로 해독했습니다. 0.3 초가 걸렸습니다 (변환하는 데 소요되는 시간, ~ 10 분)
nneonneo

5

펄 맛, 133 [금이 간]

자, 이것은 무차별 대항하기가 더 어려워 합니다.

^([^,]{2,}),([^,]{2,}),([^,]{2,}),(?=.\2+,)(?=.\3+,)\1+,(?=.\1+,)(?=.\3+,)\2+,(?=.\1+,)(?=.\2+,)\3+,(?=.{16,20}$)(\1{3}|\2{3}|\3{3})$

그리고 도전의 일부가 아닌 더 긴 버전 :

^([^,]{3,}),([^,]{3,}),([^,]{3,}),([^,]{3,}),([^,]{3,}),([^,]{3,}),(?=.\2+,)(?=.\3+,)(?=.\4+,)(?=.\5+,)(?=.\6+,)\1+,(?=.\1+,)(?=.\3+,)(?=.\4+,)(?=.\5+,)(?=.\6+,)\2+,(?=.\1+,)(?=.\2+,)(?=.\4+,)(?=.\5+,)(?=.\6+,)\3+,(?=.\1+,)(?=.\2+,)(?=.\3+,)(?=.\5+,)(?=.\6+,)\4+,(?=.\1+,)(?=.\2+,)(?=.\3+,)(?=.\4+,)(?=.\6+,)\5+,(?=.\1+$)(?=.\2+$)(?=.\3+$)(?=.\4+$)(?=.\5+$)\6+$

Regex101 (pcre flavor) 에서 테스트 할 수 있습니다 .


이 패턴의 기본 개념은 lookaheads를 사용하여 정규식에서 간단한 합동 방정식 시스템을 인코딩 할 수 있다는 것입니다. 예를 들어, 정규식 ^(?=(..)*$)(...)*$은 길이가 23 의 공통 배수 , 즉 6 의 배수 인 모든 문자열과 일치합니다 . 이것은 방정식 2x ≡ 0 mod 3 으로 볼 수 있습니다 . 캡처 그룹을 사용하여 방정식을 매개 변수화 할 수 있습니다. 정규식 ^(.*),(.*),(?=\1*$)\2*$은 마지막 쉼표 뒤의 문자 수가 첫 번째 및 두 번째 부분 일치 길이의 공통 배수 인 문자열과 일치합니다. 이것은 매개 변수화 된 방정식 ax ≡ 0 mod b 로 볼 수 있습니다 . 여기서 ab 는 두 하위 일치의 길이입니다.

상기 정규식은 적어도 2 개의 길이의 3 개의 "파라미터"를 취함으로써 시작되고, 그 다음에 {ax + 1 ≡ 0 mod c, + 1 ≡ 0 mod c, ax에(?=.\1+,)(?=.\2+,)\3+, 대응하는 3 개의 "방정식"이 뒤 따른다. = by} , 여기서 a , bc 는 해당 부분 일치의 길이입니다. 경우만 방정식이 시스템은 솔루션을 와 B가 로 서로 소되는 C . 각 부분 일치에 대해 하나씩 3 개의 시스템이 있으므로 부분 일치의 길이는 쌍별 코 프라임이어야합니다. 정규 표현식의 마지막 부분은 부분 일치 중 하나의 길이가 6 임을 보장하기위한 것입니다 . 이렇게하면 다른 두 하위 일치 항목이

더 작은 값은 동일하지 않으며 더 큰 값은 256 자보다 긴 키를 생성하므로 57 자 길이입니다. 방정식에 대한 가장 작은 해는 85 , 3691 길이의 하위 문자열을 생성 하며 , 결과적으로 우리가 얻을 수있는 한 길이가 254- 인 문자열이됩니다.

더 긴 정규 표현식은 동일한 원칙을 사용하며, 길이가 6 개 이상인 매개 변수는 3 개 이상이며 추가 제한은 없습니다. 2 보다 큰 6 개의 정수로 이루어진 가장 작은 쌍별 코 프림 세트 는 {3, 4, 5, 7, 11, 13} 이며, 최소 길이 40041, 15016, 24025, 34321, 43681 및 23101의 하위 문자열을 생성합니다.. 따라서 더 긴 정규 표현식과 일치하는 가장 짧은 문자열은 a{3},a{4},a{5},a{7},a{11},a{13},a{40041},a{15016},a{24025},a{34321},a{43681},a{23101} (매개 변수의 순서입니다) 180,239 자입니다!


그건 {16,20}.
Sp3000

2
일치 : aaaaa,aaaaaa,aaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaa, 불일치 :aaaaaaaaaaaaaaaa
Sp3000

나는 a어떤 이유로 SE가 추가 s를 계속 추가한다고 생각합니다 - a쉼표 사이에 5,6,7,85,36,91,18이 있어야 합니다 : /
Sp3000

@ Sp3000 카드를 골라라.;) 네, 금이 갔다 귀하의 의견에 나오는 'a'중 일부는 ASCII가 아닌 것으로 보이지만 숫자는 맞습니다.
Ell

@Es as는 모두 ASCII이지만 각 수동 줄 바꿈 SE에는 인쇄 할 수없는 유니 코드 문자가 두 개 있습니다.
Martin Ender

5

.NET 풍미, 141 바이트 [금이 간]

(?=(?<![][])(?(c)(?!))((?<c>[[])|(?<-c>[]])){15,}(?(c)(?!))(?![][]))^.*$(?<=(?<![][])(?(c)(?!))((?<c>[[])|(?<-c>[]])){15,}(?(c)(?!))(?![][]))

강도를위한 또 하나! 나는 이것이 깨질 것이라고 확신하지만, 그것을 깨는 사람은 프로세스에서 .NET 맛에 대해 흥미로운 것을 배울 수 있기를 바랍니다.

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

나는 이것이 .NET에서만 찾을 수있는 세 가지 랜드 마크 정규 표현식 기능 (가변 길이 lookbehinds, 밸런싱 그룹 및 오른쪽에서 왼쪽 일치)의 상호 작용에 의존하기 때문에 이것이 흥미로울 것이라고 생각했습니다.

.NET 관련 사항을 시작하기 전에 문자 클래스에 대한 간단한 내용을 정리해 보겠습니다. 문자 클래스는 비워 둘 수 없으므로로 시작하면 ]실제로 이스케이프하지 않고 클래스의 일부입니다. 마찬가지로, [문자 클래스의 a 는 이스케이프없이 클래스의 멤버로 명확하게 취급 될 수 있습니다. 그래서 []]하나의 일치 만 동일 \]하고, [[]동일한이다 \[더 중요한 [][]브라켓 모두를 포함하는 문자 클래스입니다.

이제 정규식의 구조를 보자 :(?=somePattern)^.*$(?<=somePattern). 따라서 실제 일치는 실제로 무엇이든 ( ^.*$)이지만 한 패턴을 두 번 적용하여 시작과 끝에 한 번 고정합니다.

그 패턴을 보자 : (?<![][])패턴 앞에 괄호가 없는지 확인하십시오. (?![][])(끝에) 패턴 뒤에 괄호가 없는지 확인하십시오. 이것은 문자열의 끝이나 다른 문자에 인접하여 수행됩니다. 명명 된 캡처 그룹 이 아무 것도 일치하지 않기 때문에 처음에는
이 작업 (?(c)(?!))이 실제로 중복됩니다 c. 우리 마지막에 이것을 필요로하기 때문에 적어도 멋지고 대칭 적입니다. 이제 패턴의 주요 부분은 다음과 같습니다 ((?<c>[[])|(?<-c>[]])){15,}(?(c)(?!)). 이 그룹을 밸런싱 그룹이라고하며 여기서 수행하는 작업은 최소 15 개의 문자열과 일치합니다밸런스 대괄호. 그룹 균형 조정에 대해 할 말이 너무 많습니다.이 게시물에는 너무 많지만 얼마 전에 StackOverflow에 게시 한 다소 포괄적 인 토론을 참조 할 수 있습니다 .

미리보기가하는 일은 패턴이 균형 잡힌 대괄호로 시작하고 그 옆에 더 이상 대괄호가 없는지 확인하는 것입니다.

이제 끝에 보이는 모양은 정확히 같은 패턴을 포함합니다. 중복되지 않아야합니까? 같은 뭔가 안 [][][][][][][][]모두 lookarounds을 충족하고 패턴이 일치하는 원인?

아니요. 여기 까다로운 곳이 있기 때문입니다. 문서화되지 않았지만 .NET lookbehinds는 오른쪽에서 왼쪽으로 일치합니다.. .NET이 가변 길이 lookbehind를 지원하는 유일한 특징 인 이유입니다. 일치 순서는 관련이 없으므로 일반적으로이 사실을 알지 못합니다. 그러나이 특별한 경우에, 여는 사각형 괄호는 이제 닫는 사각형 괄호 의 오른쪽 에 와야 합니다 . 따라서 lookbehind는 실제로 ][][][또는 에서와 같이 일치하지 않는 대괄호를 확인합니다 ]]][[[. 이것이 (?(c)(?!))패턴의 시작 부분에서 검사가 필요한 이유 입니다. 이제는 일치가 끝났습니다.

따라서 문자열의 시작 부분에 15 (또는 16) 개의 일치하는 대괄호와 문자열 끝에 15 (또는 16) 개의 일치하지 않는 대괄호를 원합니다. 그러나 그 두 가지로 인해 연결할 수 없습니다(?![][])둘러보기. 그래서 우리는 무엇을합니까? 일치하는 문자열과 일치하지 않는 문자열을 가져 와서 임의의 문자와 결합하여 예를 들어 제공합니다 [][][][][[[[]]]]!][][][][]]]][[[[.

나는 한가지 의문을 남길 것 같아 ... 지구상에서 룩 앤비가 오른쪽에서 왼쪽으로 일치한다는 것을 어떻게 알았습니까? 글쎄, 나는 한 번의 비전 정규식 마술을 시도했지만 왜 내 lookbehind가 작동하지 않는지 알 수 없었습니다. 그래서 나는 친절한 Q & A 사이트를 옆집에 물었다 . 이 기능은 그룹을 올바르게 사용하는 방법을 알고 있으면 그룹을 더욱 강력하게 만들기 때문에이 기능에 정말 만족합니다. :)


1
경기 : [][][][][][][][]a][][][][][][][][. 불일치 :That's interesting...
jimmy23013

@ user23013 응! 그것은 빠르다. .NET의 단점에 이미 익숙 했습니까? :)
Martin Ender 2013 년

5 분 전
룩백

아니요. 그러나 PCRE에서는 수량 화기가 보이지 않는 것을 이미 알고 있습니다. 실제로 되돌아 보는 것이 그보다 훨씬 낫다고 생각합니다.
jimmy23013

@ MartinBüttner 그래서 확인하기 위해 lookbehinds는 실제로 뒤에서 앞으로 일치합니까?
TwiNight

5

파이썬 풍미 (200127 바이트)

우리가 (희망스럽게) 하루 종일 무언가를 볼 수 있도록 큰 총을 꺼내야 할 때입니다. :)

3-SAT 및 Hamiltonian 경로의 문제점은 복잡성이 키 크기와 관련되어 있다는 것입니다. 이번에는 키가 아닌 정규식에 의존하는 것을 선택했습니다.

여기는 regex 입니다. 이 파일이 유용 할 수도 있습니다 . (걱정하지 마십시오, 이번에는 이상한 것을 숨기지 않았습니다.))

나는 이것을 테스트하기 위해 RegexPlanet 을 사용 했습니다. 시간이 초과되지 않는 것을 찾기가 어려웠습니다 : /. 일치하는 항목이 있는지 확인하려면 아래에 문자열이 나타나는지 확인하십시오 findall().

행운을 빕니다!


정규식은 단지 "길이가 64 인 문자열을 찾아서 길이가 5000 인 20 개의 문자열 세트에서 공통 서브 시퀀스로 나타납니다". 아마도 너무 많은 해결책이 있었을 것입니다.


5
경기 : d,mE~JZ0,_:3kBdLdgBSzJ!@MLrrAgKsf@Pl35N9bxsIf@ReVU>:YDg`d1MjL@_-. 불일치 :{ line|fold -w1 >filea; while line >filec; do fold -w1 <filec >fileb; diff -d --old-line-format= --new-line-format= --unchanged-line-format=%L filea fileb >filec;mv filec filea;done;cat filea;} <file1|tr -d $'\n'|head -c64;echo
jimmy23013

Ahaha 내가 이겼습니다-시퀀스가 너무 길고 너무 많은 솔루션이 있다고 생각합니다
Sp3000

@ user23013 많이 들리지만 실제로는 그렇게 나쁘지는 않습니다.
Martin Ender

글쎄, 내가 틀렸어 718406958841 솔루션 만있는 것은 아닙니다. 그리고 내 스크립트에는 버그가 있으므로 마지막 패턴을 무시했습니다. 그러나 첫 번째 (19 개) 패턴의 일반적인 시퀀스는 마지막 하나의 서브 우연히
jimmy23013

@ MartinBüttner 나는 얼마나 많은 솔루션이 있는지 정확히 알지 못하며 그 수는 잘못되었습니다. 가장 긴 공통 서브 시퀀스는 길이가 64 인 718406958841 (수정 값 : 97082021465) 서브 시퀀스를 갖습니다. 그러나 LCS의 서브 시퀀스가 ​​아닌 다른 CS가 있습니다.
jimmy23013

5

파이썬, 145475 바이트

우리 지수를 점검하는 것의 중요성을 가르쳐 준 Wumpus에게 감사드립니다 :)

마지막 해결책과 같은 거래, 이번에는 깨지지 않았을 것입니다. 원시 정규식 : http://pastebin.com/MReS2R1k

편집 : 그것은 깨지지 않았지만 분명히 여전히 쉽지 않았습니다. 적어도 "즉시"해결되지 않았다;)


4
불일치 : 1040060321170122554027333022674205250442151362365165773421664173556667110413375720720711725045122733213710556062114131057357354554245723416516004761215632214223735570625116160162051407026445600345370604702671021412723536217011007021752560474402200436670402경기 :minisat2hoursCPU

Ayup. 당신은 저를 얻었다. 꽤 빨랐습니다. 어쩌면 나는 결국 내 1GB 정규식을
터뜨려 야

5

Java 패턴 / 오라클 구현 (75 자 / 150 바이트 UTF-16) [균열]

(코드 명 : Bad Coffee 101)

이것은 (암시 적 앵커) 와 함께 사용되는 플래그 가있는 Pattern객체입니다 .CANON_EQmatches()

Pattern.compile("(\\Q\u1EBF\\\\E)?+[\\w&&[\\p{L1}]\\p{Z}]+|\\1[\uD835\uDC00-\uD835\uDC33]{1927027271663633,2254527117918231}", Pattern.CANON_EQ)

이데온에서 키를 테스트하십시오.

열쇠가 보장됩니다. 확인을 원하시면 스포일러를 읽으십시오.

보시다시피, 정상적인 정규 표현식이 아닙니다. 그러나 ExceptionOracle의 Java 버전 1.6.0u37 및 Java 버전 1.7.0u11에서는 실행되지 않으며 작성시 최신 버전에서도 실행해야합니다.

이것은 4 가지 버그를 사용합니다 : CANON_EQ, 실패한 시도의 텍스트 보존, 문자 클래스 손실 및 수량 자 오버플로.


4
일치 : "(?:e\u0302\u0301\\|\u00ea\u0301\\|\u1ebf\\|\u00ea\\\u0301|e\u0302\\\u0301|\u00ea\\\u0301|\u00ea\u0301\\|\u1ebf\\|e\\\u0302\u0301)\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00"(인용 양식). 불일치 : JavaRegexSoBuggy. 일치하는 ideone
nneonneo

발견 된 버그 : (1) CANON_EQ미리 작성된 문자를 내부적으로 교대로 확장하여 내부에서 유쾌하게 침입합니다 \Q\E. (2) 반복 길이는 32 비트로 잘린다; (3) 캐릭터 클래스 매처와 관련하여 이상한 점이있어서 대체를 건너 뛸 수 있습니다 (버그가 정확히 무엇인지 알지 못함).
nneonneo

@nneonneo : 설명이 정확합니다. 그러나 당신은 역 참조 \1버그 를 잊었다 . 그리고 네, 캐릭터 클래스에 버그가 있습니다. 이 모든 것을 2 시간 이내에 어떻게 알아 냈습니까?
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

20 분 전에 작업을 시작했습니다. 문제의 어느 부분이 어떤 버그 (각 버그가 기본적으로 자체 그룹에 있었기 때문에)를 강조했는지를 분명히 알았으므로 각 부분을 독립적으로 만족시키는 방법을 찾아서 결합했습니다. 캐릭터 클래스가하는 일을 실제로 해결할 필요가 없다는 점이 운이 좋았습니다. (또한 구문 오류가있을 때 Java가 "확장 된"내부 패턴을
내뱉는

또한! 캡처 된 텍스트 보존이 반드시 버그라고 생각하지 않습니다. 이것이 소유 정량화가 작동하는 방식 인 것 같습니다. (또한 특정 정규식 해킹에는 다소 유용한 속성입니다 ... hm ...)
nneonneo

5

.NET 플레이버, 17,372 바이트 [균열]

이것은 여전히 ​​쉬운 버전입니다. 더 긴 문자열로 작업하려면 더 많은 최적화가 필요합니다.

정규식은 여기에 있습니다 : http://pastebin.com/YPE4zyBB

Ungolfed : http://pastebin.com/PLJp0KhF

테스트 RegexStorm이 블로그RegExLib (체크 모든 옵션).

이 정규식에 대한 솔루션은 5122188685368916735780446744735847888756487271329 = 2147852126374329492975359 * 2384795779221263457172831의 인수 분해이며, 결과는 기본 289로 인코딩되며, 가장 중요하지 않습니다.

각 숫자는 먼저 계산을 더 빠르게하기 위해 두 개의 기본 17 숫자로 나뉩니다. 제품이 정규식으로 인코딩되는 방식이기도합니다.

그런 다음 두 숫자의 각 숫자 쌍이 캡처 그룹 a0에 곱해집니다 a38. 각각은 제품의 숫자입니다. 현재 위치는 p및로 추적됩니다 q. 그리고 운반은 곱셈 후에 제품을 비교하면서 처리됩니다.

289에 있습니다. 각 128 비트 256 자릿수를 갖는 두 개의 1024 비트 숫자를 허용하도록 설계되었으므로 쉼표를 제거하지 않기 때문에 기본 256의 전체 문자열은 257 자입니다.

1536 비트 버전은 여기에 있습니다 . 두 개의 768 비트 숫자를 허용합니다. 이 쉬운 버전의 숫자는 각각 81 비트입니다.


2
경기 : Ľê¯6Aĝ4aþĀ,lŃŝĿBİŢŞĩï(탈출 :) \u013d\xea\xaf6A\u011d4a\xfe\u0100,l\u0143\u015d\u013fB\u0130\u0162\u015e\u0129\xef. 불일치 :VeryNiceMultiplier
nneonneo

4

ECMAScript 맛, 30 바이트 [크랙]

^((?![\t- ]|[^\s])(.)(?!\2))+$

강도들이 깨지기에는 다소 간단한 것이 있습니다. 개념적으로 너무 어렵지는 않지만 약간의 연구 (또는 스크립팅)가 필요할 수 있습니다. 나는 리더 보드에 자신을 열거하지는 않지만, 누군가 72 시간 안에 그것을 깨 뜨리면 강도 점수에 합산됩니다.

Chrome을 사용하여 Regex101RegExr 에서 테스트되었습니다 .

글쎄, 그것은 빠르다!

정규식은 고유 한 비 ASCII 공백 문자 로 구성된 모든 문자열과 일치해야합니다 . 그러나을 .*앞에 잊어 버렸 \2으므로 실제로는 ASCII가 아닌 공백 문자열과 일치하며 두 개의 동일한 동일한 문자가 포함되지 않습니다. 유니 코드 범위에는 코드 포인트까지 18 개의 문자가 있습니다 0xFFFF. user23013이 게시 한 일치 항목은 16 자로 구성된 문자열 중 하나입니다.


1
일치 (base64) : wqDigZ/CoOKBn8Kg4oGfwqDigZ/CoOKBn8Kg4oGfwqDigZ/CoOKBnw==, 일치하지 않음 :aaaabaaacaaadaaa
jimmy23013

별개의 것이 아니라 두 개의 별개의 문자로 번갈아 나타납니다.
jimmy23013

@ user23013 젠장, .*미리보기를 잊어 버렸습니다 . 잘 잡았습니다. 더 철저히 테스트해야합니다.
Martin Ender

4

루비 맛 , 24 바이트 [크랙]

^(?!.*(.+)\1)([\[\\\]]){256}$

원하는 키가 작동하는 테스터 (예 : rubular.com )에 대한 링크를 포함하십시오 . (또한, 난독은 / 프로 팁 골프를 치는 대신 PCRE를 사용하는 경우, 캐릭터 클래스로 작성할 수 []\\[]))
마틴 청산

링크가 추가되었습니다. Wumpus가 금이 간 것으로 의심되며 rubular.com에 대한 영구 링크로 증명할 수 있습니다
histocrat

2
불일치 : soylentgreenispeople. 댓글 시스템이 긴 단어를 처리하는 방식 때문에 rubular.com/r/TCqjcaGsU1 에서 사용할 수있는 일치 항목이 여기에 게시되지 않았습니다.

트윗 담아 가기 일치하지 않는 의견을 동일한 의견에 포함 시키면 위의 모든 혼란을 해결할 수 있습니다.
Martin Ender

4

PHP, 168 바이트 [cracked by nneonneo ]

^((?![!?$]*[^!?$]))?(?:[^!]\2?+(?=(!*)(\\\3?+.(?!\3)))){4}(?(1)|Ha! No one will ever get this one...)|(?!(?1))\Q\1?!($!?)?\E\1?!($!?)?(?<!.{12})\Q(?=(?1))\E(?=(?1))!\?$

다음은 정규식 데모 입니다.

PS이 게임은 어렵다.


2
경기 : \1?!($!?)?!(?=(?1))!?. 불일치 :IncrementalRegexTestingWorks
nneonneo

@nneonneo 아, 당신은 너무 좋다;)
Unihedron

4

PCRE (1043 바이트) [균열]

무작위로 생성 된 정규 표현식이 나에게 실패한 후 (아이디어는 좋지만 적절한 문제 인스턴스를 생성 할 수 없었습니다), 나는 이것을 직접 작성하기로 결정했습니다. 나는 그것을 "만족시킬 많은 규칙"이라고 불렀다.

^(?=^([^)(]*\(((?>[^)(]+)|(?1))*\)[^)(]*)*$)(?=^([^][]*\[((?>[^][]+)|(?3))*\][^][]*)*$)(?=^([^}{]*\{((?>[^}{]+)|(?5))*\}[^}{]*)*$)(?!^\(.*)(?!.*\(.{250}\).*)(?=.*\[.{250}\].*)(?=.*\{.{250}\}.*)(?=.*\[.\(\).\{\}.\].*)(?=.*\}...\[...\[...\]...\]...\{.*)(?=.*\(\(..\(\(.{68}\(\(\)\).{43}\)\)\)\).*)(?=.*\{..\{..\{.{65}\{\}\{\}.{33}\{\}.{107}\}\}.\}.*)(?=.*\[\{\{\[\(\{.*)(?=.*\[\[..\[.{6}\[.{6}\]\]...\]\].{6}\[..\]..\[\].*)(?=.*\]\]\}\}\}.\)\)\)\).{96}\]\}\}\]\]\]\}\]\]\].\)\]\].*)(?=.*\]..\).{6}\(.{7}\{.{5}\[...\[.{5}\{\[.*)(?=.*\[.{87}\{.{45}}{.{38}}.{27}\].*)(?=.*\(\{.{32}\(.{20}\{.{47}\].{43}\{\{.{25}\}\}.{18}\].{5}\}....\}.{5}\).*)(?=.*\{.{12}\(.{5}\(...\(...\{\[.\{\[\[.*)(?=.*\{\(.{21}\).{8}\}.{14}\[.{7}\]..\{.{5}\{\}....\}.*)(?=.*\(.\{.{49}\{.{16}\}.{25}\}.{66}\).*)(?!.*\(\{\(\(.*)(?!.*\(\)\[\].*)(?=(.*?\].*?\)){15,}.*)(?=(.*\[.*\(.*\{){5,9}.*)(?=.*\({3}.{105}\[{3}.{105}[^}{].*)(?=.*\(..\).{5}\(\)....\}\}\].\{\{\[.{22}\[.{35}\}\}\].*)(?!.*\(\(.{178}\])(?=(.*\[..\]){8,10}.*)(?!(.*\([^\(\)]{5}\(){4,}.*).{63}(.{6}).{130}\11.{51}$

그리고 확장 :

^
(?=^([^)(]*\(((?>[^)(]+)|(?1))*\)[^)(]*)*$)
(?=^([^][]*\[((?>[^][]+)|(?3))*\][^][]*)*$)
(?=^([^}{]*\{((?>[^}{]+)|(?5))*\}[^}{]*)*$)
(?!^\(.*)
(?!.*\(.{250}\).*)
(?=.*\[.{250}\].*)
(?=.*\{.{250}\}.*)
(?=.*\[.\(\).\{\}.\].*)
(?=.*\}...\[...\[...\]...\]...\{.*)
(?=.*\(\(..\(\(.{68}\(\(\)\).{43}\)\)\)\).*)
(?=.*\{..\{..\{.{65}\{\}\{\}.{33}\{\}.{107}\}\}.\}.*)
(?=.*\[\{\{\[\(\{.*)
(?=.*\[\[..\[.{6}\[.{6}\]\]...\]\].{6}\[..\]..\[\].*)
(?=.*\]\]\}\}\}.\)\)\)\).{96}\]\}\}\]\]\]\}\]\]\].\)\]\].*)
(?=.*\]..\).{6}\(.{7}\{.{5}\[...\[.{5}\{\[.*)
(?=.*\[.{87}\{.{45}}{.{38}}.{27}\].*)
(?=.*\(\{.{32}\(.{20}\{.{47}\].{43}\{\{.{25}\}\}.{18}\].{5}\}....\}.{5}\).*)
(?=.*\{.{12}\(.{5}\(...\(...\{\[.\{\[\[.*)
(?=.*\{\(.{21}\).{8}\}.{14}\[.{7}\]..\{.{5}\{\}....\}.*)
(?=.*\(.\{.{49}\{.{16}\}.{25}\}.{66}\).*)
(?!.*\(\{\(\(.*)
(?!.*\(\)\[\].*)
(?=(.*?\].*?\)){15,}.*)
(?=(.*\[.*\(.*\{){5,9}.*)
(?=.*\({3}.{105}\[{3}.{105}[^}{].*)
(?=.*\(..\).{5}\(\)....\}\}\].\{\{\[.{22}\[.{35}\}\}\].*)
(?!.*\(\(.{178}\])
(?=(.*\[..\]){8,10}.*)
(?!(.*\([^\(\)]{5}\(){4,}.*)
.{63}(.{6}).{130}\11.{51}
$

Regex101에서 테스트되었습니다 -컴퓨터에 따라 최대 실행 시간 을 늘려야 할 수도 있습니다.


이 정규식은 단지 만족해야 할 규칙들을 인코딩합니다. 어떤 해결책이든 상관 없습니다.

  • 처음 세 가지 핵심 규칙에 따라 모든 ([{괄호가 키 내에서 균형을 이루어야합니다.
  • 대부분의 표현에서는 특정 "모양"이 키에 있거나 없어야합니다. 예를 들어, 8 번째 행에는 형식이 필요합니다 [.(.).].
  • 예를 들어와 같은 규칙 (?=(.*\[.*\(.*\{){5,9}.*)[({교대가 5 회 이상 발생 해야합니다 . 이 줄은 특히 의도하지 않게 여러 수준에서 버그가 발생합니다.
  • 역 참조 \11는 특정 위치에서 두 번 나타나려면 하나의 6 문자 하위 문자열이 필요합니다.


2
경기 : [((({.[.[](){{}{].{.(({){(.[]()....}}].{{[[....).[..]()(}..[..]([....(([{((({).](){.{}{}{}....}[[()[}}][{{[({[[[.]]}()]].{}.]{[..]{.[]]}}}())))(())[(.].{[.{[[..[()].()}{{.[...[}{.]..)]...{.])))).}}..([......{.....[.]}[...}.{[.}...}})}.))).]}}]]]}]]].)]]..}. 불일치 : WhatANastySetOfRulesYouHave.
nneonneo

실행 시간을 50 초로 늘 렸습니다. 그건 그렇고, 욕심없는 정량 (?=(.*\[.*\(.*\{){5,9}.*)자를 사용하면 최대 실행 시간을 늘릴 필요가 없습니다 (동일한 결과). 즉시 일치합니다.
nneonneo

@nneonneo Ahaha 그래, 내가 게시 한 후 깨달았습니다. 그래도 키에 대한 pastebin 링크를 게시 할 수 있습니까? SE 의견은 다시 행동하는 것 같습니다
Sp3000

@nneonneo 또한 솔루션에 점이 너무 많으면 분명히 규칙 이 충분 하지 않은 것입니다 . P
Sp3000

2
내 솔루션이 보이는 regex101 링크는 다음과 같습니다. regex101.com/r/gP2aX7/1
nneonneo

4

.NET 플레이버 (7563 바이트) [cracked]

@ user23013의 아이디어에서 영감을 얻었습니다.

^(?:(?=1(?<1>){5632})|(?=0)).(?:(?=1(?<1>){79361})|(?=0)).(?:(?=1(?<1>){188421})|(?=0)).(?:(?=1(?<1>){164870})|(?=0)).(?:(?=1(?<1>){63496})|(?=0)).(?:(?=1(?<1>){116233})|(?=0)).(?:(?=1(?<1>){112138})|(?=0)).(?:(?=1(?<1>){47447})|(?=0)).(?:(?=1(?<1>){85005})|(?=0)).(?:(?=1(?<1>){17936})|(?=0)).(?:(?=1(?<1>){108053})|(?=0)).(?:(?=1(?<1>){88599})|(?=0)).(?:(?=1(?<1>){91672})|(?=0)).(?:(?=1(?<1>){178716})|(?=0)).(?:(?=1(?<1>){199710})|(?=0)).(?:(?=1(?<1>){166661})|(?=0)).(?:(?=1(?<1>){190496})|(?=0)).(?:(?=1(?<1>){184494})|(?=0)).(?:(?=1(?<1>){199203})|(?=0)).(?:(?=1(?<1>){116778})|(?=0)).(?:(?=1(?<1>){78891})|(?=0)).(?:(?=1(?<1>){192556})|(?=0)).(?:(?=1(?<1>){24995})|(?=0)).(?:(?=1(?<1>){1071})|(?=0)).(?:(?=1(?<1>){192561})|(?=0)).(?:(?=1(?<1>){108082})|(?=0)).(?:(?=1(?<1>){1593})|(?=0)).(?:(?=1(?<1>){26967})|(?=0)).(?:(?=1(?<1>){197983})|(?=0)).(?:(?=1(?<1>){97034})|(?=0)).(?:(?=1(?<1>){86965})|(?=0)).(?:(?=1(?<1>){60480})|(?=0)).(?:(?=1(?<1>){149571})|(?=0)).(?:(?=1(?<1>){100932})|(?=0)).(?:(?=1(?<1>){40519})|(?=0)).(?:(?=1(?<1>){173492})|(?=0)).(?:(?=1(?<1>){80972})|(?=0)).(?:(?=1(?<1>){115790})|(?=0)).(?:(?=1(?<1>){29265})|(?=0)).(?:(?=1(?<1>){91730})|(?=0)).(?:(?=1(?<1>){173140})|(?=0)).(?:(?=1(?<1>){52821})|(?=0)).(?:(?=1(?<1>){176726})|(?=0)).(?:(?=1(?<1>){170211})|(?=0)).(?:(?=1(?<1>){150105})|(?=0)).(?:(?=1(?<1>){23131})|(?=0)).(?:(?=1(?<1>){81503})|(?=0)).(?:(?=1(?<1>){77412})|(?=0)).(?:(?=1(?<1>){106086})|(?=0)).(?:(?=1(?<1>){4284})|(?=0)).(?:(?=1(?<1>){142610})|(?=0)).(?:(?=1(?<1>){167534})|(?=0)).(?:(?=1(?<1>){190577})|(?=0)).(?:(?=1(?<1>){147731})|(?=0)).(?:(?=1(?<1>){133748})|(?=0)).(?:(?=1(?<1>){194750})|(?=0)).(?:(?=1(?<1>){49257})|(?=0)).(?:(?=1(?<1>){49274})|(?=0)).(?:(?=1(?<1>){120767})|(?=0)).(?:(?=1(?<1>){172668})|(?=0)).(?:(?=1(?<1>){24703})|(?=0)).(?:(?=1(?<1>){108160})|(?=0)).(?:(?=1(?<1>){60546})|(?=0)).(?:(?=1(?<1>){56963})|(?=0)).(?:(?=1(?<1>){30340})|(?=0)).(?:(?=1(?<1>){95368})|(?=0)).(?:(?=1(?<1>){59530})|(?=0)).(?:(?=1(?<1>){53388})|(?=0)).(?:(?=1(?<1>){14477})|(?=0)).(?:(?=1(?<1>){28302})|(?=0)).(?:(?=1(?<1>){182927})|(?=0)).(?:(?=1(?<1>){59024})|(?=0)).(?:(?=1(?<1>){146200})|(?=0)).(?:(?=1(?<1>){153746})|(?=0)).(?:(?=1(?<1>){39571})|(?=0)).(?:(?=1(?<1>){134293})|(?=0)).(?:(?=1(?<1>){158362})|(?=0)).(?:(?=1(?<1>){170139})|(?=0)).(?:(?=1(?<1>){182940})|(?=0)).(?:(?=1(?<1>){7327})|(?=0)).(?:(?=1(?<1>){143525})|(?=0)).(?:(?=1(?<1>){119464})|(?=0)).(?:(?=1(?<1>){82090})|(?=0)).(?:(?=1(?<1>){170667})|(?=0)).(?:(?=1(?<1>){49522})|(?=0)).(?:(?=1(?<1>){69806})|(?=0)).(?:(?=1(?<1>){15535})|(?=0)).(?:(?=1(?<1>){16049})|(?=0)).(?:(?=1(?<1>){163358})|(?=0)).(?:(?=1(?<1>){181876})|(?=0)).(?:(?=1(?<1>){58044})|(?=0)).(?:(?=1(?<1>){16062})|(?=0)).(?:(?=1(?<1>){39616})|(?=0)).(?:(?=1(?<1>){31425})|(?=0)).(?:(?=1(?<1>){94404})|(?=0)).(?:(?=1(?<1>){86848})|(?=0)).(?:(?=1(?<1>){16589})|(?=0)).(?:(?=1(?<1>){195280})|(?=0)).(?:(?=1(?<1>){199377})|(?=0)).(?:(?=1(?<1>){43731})|(?=0)).(?:(?=1(?<1>){67534})|(?=0)).(?:(?=1(?<1>){106198})|(?=0)).(?:(?=1(?<1>){54999})|(?=0)).(?:(?=1(?<1>){52952})|(?=0)).(?:(?=1(?<1>){125828})|(?=0)).(?:(?=1(?<1>){169691})|(?=0)).(?:(?=1(?<1>){184542})|(?=0)).(?:(?=1(?<1>){177888})|(?=0)).(?:(?=1(?<1>){43233})|(?=0)).(?:(?=1(?<1>){127203})|(?=0)).(?:(?=1(?<1>){116518})|(?=0)).(?:(?=1(?<1>){117990})|(?=0)).(?:(?=1(?<1>){67815})|(?=0)).(?:(?=1(?<1>){62202})|(?=0)).(?:(?=1(?<1>){165611})|(?=0)).(?:(?=1(?<1>){197356})|(?=0)).(?:(?=1(?<1>){29933})|(?=0)).(?:(?=1(?<1>){90862})|(?=0)).(?:(?=1(?<1>){90863})|(?=0)).(?:(?=1(?<1>){149232})|(?=0)).(?:(?=1(?<1>){61681})|(?=0)).(?:(?=1(?<1>){137970})|(?=0)).(?:(?=1(?<1>){90357})|(?=0)).(?:(?=1(?<1>){47351})|(?=0)).(?:(?=1(?<1>){172509})|(?=0)).(?:(?=1(?<1>){78293})|(?=0)).(?:(?=1(?<1>){66303})|(?=0)).(?:(?=1(?<1>){66262})|(?=0)).(?:(?=1(?<1>){158471})|(?=0)).(?:(?=1(?<1>){5676})|(?=0)).(?:(?=1(?<1>){127242})|(?=0)).(?:(?=1(?<1>){51979})|(?=0)).(?:(?=1(?<1>){162060})|(?=0)).(?:(?=1(?<1>){27405})|(?=0)).(?:(?=1(?<1>){153874})|(?=0)).(?:(?=1(?<1>){150291})|(?=0)).(?:(?=1(?<1>){1814})|(?=0)).(?:(?=1(?<1>){193815})|(?=0)).(?:(?=1(?<1>){82200})|(?=0)).(?:(?=1(?<1>){59161})|(?=0)).(?:(?=1(?<1>){78620})|(?=0)).(?:(?=1(?<1>){123678})|(?=0)).(?:(?=1(?<1>){147232})|(?=0)).(?:(?=1(?<1>){71457})|(?=0)).(?:(?=1(?<1>){118562})|(?=0)).(?:(?=1(?<1>){129830})|(?=0)).(?:(?=1(?<1>){161841})|(?=0)).(?:(?=1(?<1>){60295})|(?=0)).(?:(?=1(?<1>){165426})|(?=0)).(?:(?=1(?<1>){107485})|(?=0)).(?:(?=1(?<1>){171828})|(?=0)).(?:(?=1(?<1>){166200})|(?=0)).(?:(?=1(?<1>){35124})|(?=0)).(?:(?=1(?<1>){160573})|(?=0)).(?:(?=1(?<1>){7486})|(?=0)).(?:(?=1(?<1>){169279})|(?=0)).(?:(?=1(?<1>){151360})|(?=0)).(?:(?=1(?<1>){6978})|(?=0)).(?:(?=1(?<1>){136003})|(?=0)).(?:(?=1(?<1>){56133})|(?=0)).(?:(?=1(?<1>){8520})|(?=0)).(?:(?=1(?<1>){87436})|(?=0)).(?:(?=1(?<1>){57162})|(?=0)).(?:(?=1(?<1>){197965})|(?=0)).(?:(?=1(?<1>){145230})|(?=0)).(?:(?=1(?<1>){95459})|(?=0)).(?:(?=1(?<1>){180564})|(?=0)).(?:(?=1(?<1>){157850})|(?=0)).(?:(?=1(?<1>){109399})|(?=0)).(?:(?=1(?<1>){191832})|(?=0)).(?:(?=1(?<1>){110223})|(?=0)).(?:(?=1(?<1>){75102})|(?=0)).(?:(?=1(?<1>){140639})|(?=0)).(?:(?=1(?<1>){49504})|(?=0)).(?:(?=1(?<1>){197987})|(?=0)).(?:(?=1(?<1>){52744})|(?=0)).(?:(?=1(?<1>){96615})|(?=0)).(?:(?=1(?<1>){13672})|(?=0)).(?:(?=1(?<1>){73068})|(?=0)).(?:(?=1(?<1>){104814})|(?=0)).(?:(?=1(?<1>){66929})|(?=0)).(?:(?=1(?<1>){23410})|(?=0)).(?:(?=1(?<1>){122686})|(?=0)).(?:(?=1(?<1>){44918})|(?=0)).(?:(?=1(?<1>){101752})|(?=0)).(?:(?=1(?<1>){3961})|(?=0)).(?:(?=1(?<1>){31807})|(?=0)).(?:(?=1(?<1>){54933})|(?=0)).(?:(?=1(?<1>){140096})|(?=0)).(?:(?=1(?<1>){49026})|(?=0)).(?:(?=1(?<1>){5507})|(?=0)).(?:(?=1(?<1>){96132})|(?=0)).(?:(?=1(?<1>){167303})|(?=0)).(?:(?=1(?<1>){57877})|(?=0)).(?:(?=1(?<1>){88461})|(?=0)).(?:(?=1(?<1>){111853})|(?=0)).(?:(?=1(?<1>){126531})|(?=0)).(?:(?=1(?<1>){110998})|(?=0)).(?:(?=1(?<1>){7575})|(?=0)).(?:(?=1(?<1>){7064})|(?=0)).(?:(?=1(?<1>){59289})|(?=0)).(?:(?=1(?<1>){122203})|(?=0)).(?:(?=1(?<1>){175005})|(?=0)).(?:(?=1(?<1>){28025})|(?=0)).(?:(?=1(?<1>){49057})|(?=0)).(?:(?=1(?<1>){6373})|(?=0)).(?:(?=1(?<1>){50084})|(?=0)).(?:(?=1(?<1>){70565})|(?=0)).(?:(?=1(?<1>){75178})|(?=0)).(?:(?=1(?<1>){142763})|(?=0)).(?:(?=1(?<1>){56237})|(?=0)).(?:(?=1(?<1>){32176})|(?=0)).(?:(?=1(?<1>){113073})|(?=0)).(?:(?=1(?<1>){149939})|(?=0)).(?:(?=1(?<1>){16308})|(?=0)).(?:(?=1(?<1>){12725})|(?=0)).(?:(?=1(?<1>){75190})|(?=0)).(?:(?=1(?<1>){54711})|(?=0)).(?:(?=1(?<1>){180664})|(?=0)).(?:(?=1(?<1>){68540})|(?=0)).(?:(?=1(?<1>){93117})|(?=0)).(?:(?=1(?<1>){161781})|(?=0)).(?:(?=1(?<1>){15808})|(?=0)).(?:(?=1(?<1>){130814})|(?=0)).(?:(?=1(?<1>){162379})|(?=0)).(?:(?=1(?<1>){80836})|(?=0)).(?:(?=1(?<1>){149943})|(?=0)).(?:(?=1(?<1>){16841})|(?=0)).(?:(?=1(?<1>){149452})|(?=0)).(?:(?=1(?<1>){182733})|(?=0)).(?:(?=1(?<1>){56270})|(?=0)).(?:(?=1(?<1>){163792})|(?=0)).(?:(?=1(?<1>){34770})|(?=0)).(?:(?=1(?<1>){101843})|(?=0)).(?:(?=1(?<1>){199124})|(?=0)).(?:(?=1(?<1>){129493})|(?=0)).(?:(?=1(?<1>){43990})|(?=0)).(?:(?=1(?<1>){113112})|(?=0)).(?:(?=1(?<1>){71129})|(?=0)).(?:(?=1(?<1>){61402})|(?=0)).(?:(?=1(?<1>){145852})|(?=0)).(?:(?=1(?<1>){98781})|(?=0)).(?:(?=1(?<1>){141790})|(?=0)).(?:(?=1(?<1>){163235})|(?=0)).(?:(?=1(?<1>){110566})|(?=0)).(?:(?=1(?<1>){117737})|(?=0)).(?:(?=1(?<1>){67050})|(?=0)).(?:(?=1(?<1>){68075})|(?=0)).(?:(?=1(?<1>){124047})|(?=0)).(?:(?=1(?<1>){181587})|(?=0)).(?:(?=1(?<1>){125429})|(?=0)).(?:(?=1(?<1>){112118})|(?=0)).(?:(?=1(?<1>){196088})|(?=0)).(?:(?=1(?<1>){25082})|(?=0)).(?:(?=1(?<1>){178684})|(?=0)).(?:(?=1(?<1>){13822})|(?=0)).(?<-1>){10094986}(?(1)(?!))$

NP 완료 문제가 충분하지 않습니다! 확장 버전은 다음과 같습니다.

^
(?:(?=1(?<1>){5632})|(?=0)).
(?:(?=1(?<1>){79361})|(?=0)).
(?:(?=1(?<1>){188421})|(?=0)).
(?:(?=1(?<1>){164870})|(?=0)).
(?:(?=1(?<1>){63496})|(?=0)).
(?:(?=1(?<1>){116233})|(?=0)).
(?:(?=1(?<1>){112138})|(?=0)).
(?:(?=1(?<1>){47447})|(?=0)).
(?:(?=1(?<1>){85005})|(?=0)).
(?:(?=1(?<1>){17936})|(?=0)).
(?:(?=1(?<1>){108053})|(?=0)).
(?:(?=1(?<1>){88599})|(?=0)).
(?:(?=1(?<1>){91672})|(?=0)).
(?:(?=1(?<1>){178716})|(?=0)).
(?:(?=1(?<1>){199710})|(?=0)).
(?:(?=1(?<1>){166661})|(?=0)).
(?:(?=1(?<1>){190496})|(?=0)).
(?:(?=1(?<1>){184494})|(?=0)).
(?:(?=1(?<1>){199203})|(?=0)).
(?:(?=1(?<1>){116778})|(?=0)).
(?:(?=1(?<1>){78891})|(?=0)).
(?:(?=1(?<1>){192556})|(?=0)).
(?:(?=1(?<1>){24995})|(?=0)).
(?:(?=1(?<1>){1071})|(?=0)).
(?:(?=1(?<1>){192561})|(?=0)).
(?:(?=1(?<1>){108082})|(?=0)).
(?:(?=1(?<1>){1593})|(?=0)).
(?:(?=1(?<1>){26967})|(?=0)).
(?:(?=1(?<1>){197983})|(?=0)).
(?:(?=1(?<1>){97034})|(?=0)).
(?:(?=1(?<1>){86965})|(?=0)).
(?:(?=1(?<1>){60480})|(?=0)).
(?:(?=1(?<1>){149571})|(?=0)).
(?:(?=1(?<1>){100932})|(?=0)).
(?:(?=1(?<1>){40519})|(?=0)).
(?:(?=1(?<1>){173492})|(?=0)).
(?:(?=1(?<1>){80972})|(?=0)).
(?:(?=1(?<1>){115790})|(?=0)).
(?:(?=1(?<1>){29265})|(?=0)).
(?:(?=1(?<1>){91730})|(?=0)).
(?:(?=1(?<1>){173140})|(?=0)).
(?:(?=1(?<1>){52821})|(?=0)).
(?:(?=1(?<1>){176726})|(?=0)).
(?:(?=1(?<1>){170211})|(?=0)).
(?:(?=1(?<1>){150105})|(?=0)).
(?:(?=1(?<1>){23131})|(?=0)).
(?:(?=1(?<1>){81503})|(?=0)).
(?:(?=1(?<1>){77412})|(?=0)).
(?:(?=1(?<1>){106086})|(?=0)).
(?:(?=1(?<1>){4284})|(?=0)).
(?:(?=1(?<1>){142610})|(?=0)).
(?:(?=1(?<1>){167534})|(?=0)).
(?:(?=1(?<1>){190577})|(?=0)).
(?:(?=1(?<1>){147731})|(?=0)).
(?:(?=1(?<1>){133748})|(?=0)).
(?:(?=1(?<1>){194750})|(?=0)).
(?:(?=1(?<1>){49257})|(?=0)).
(?:(?=1(?<1>){49274})|(?=0)).
(?:(?=1(?<1>){120767})|(?=0)).
(?:(?=1(?<1>){172668})|(?=0)).
(?:(?=1(?<1>){24703})|(?=0)).
(?:(?=1(?<1>){108160})|(?=0)).
(?:(?=1(?<1>){60546})|(?=0)).
(?:(?=1(?<1>){56963})|(?=0)).
(?:(?=1(?<1>){30340})|(?=0)).
(?:(?=1(?<1>){95368})|(?=0)).
(?:(?=1(?<1>){59530})|(?=0)).
(?:(?=1(?<1>){53388})|(?=0)).
(?:(?=1(?<1>){14477})|(?=0)).
(?:(?=1(?<1>){28302})|(?=0)).
(?:(?=1(?<1>){182927})|(?=0)).
(?:(?=1(?<1>){59024})|(?=0)).
(?:(?=1(?<1>){146200})|(?=0)).
(?:(?=1(?<1>){153746})|(?=0)).
(?:(?=1(?<1>){39571})|(?=0)).
(?:(?=1(?<1>){134293})|(?=0)).
(?:(?=1(?<1>){158362})|(?=0)).
(?:(?=1(?<1>){170139})|(?=0)).
(?:(?=1(?<1>){182940})|(?=0)).
(?:(?=1(?<1>){7327})|(?=0)).
(?:(?=1(?<1>){143525})|(?=0)).
(?:(?=1(?<1>){119464})|(?=0)).
(?:(?=1(?<1>){82090})|(?=0)).
(?:(?=1(?<1>){170667})|(?=0)).
(?:(?=1(?<1>){49522})|(?=0)).
(?:(?=1(?<1>){69806})|(?=0)).
(?:(?=1(?<1>){15535})|(?=0)).
(?:(?=1(?<1>){16049})|(?=0)).
(?:(?=1(?<1>){163358})|(?=0)).
(?:(?=1(?<1>){181876})|(?=0)).
(?:(?=1(?<1>){58044})|(?=0)).
(?:(?=1(?<1>){16062})|(?=0)).
(?:(?=1(?<1>){39616})|(?=0)).
(?:(?=1(?<1>){31425})|(?=0)).
(?:(?=1(?<1>){94404})|(?=0)).
(?:(?=1(?<1>){86848})|(?=0)).
(?:(?=1(?<1>){16589})|(?=0)).
(?:(?=1(?<1>){195280})|(?=0)).
(?:(?=1(?<1>){199377})|(?=0)).
(?:(?=1(?<1>){43731})|(?=0)).
(?:(?=1(?<1>){67534})|(?=0)).
(?:(?=1(?<1>){106198})|(?=0)).
(?:(?=1(?<1>){54999})|(?=0)).
(?:(?=1(?<1>){52952})|(?=0)).
(?:(?=1(?<1>){125828})|(?=0)).
(?:(?=1(?<1>){169691})|(?=0)).
(?:(?=1(?<1>){184542})|(?=0)).
(?:(?=1(?<1>){177888})|(?=0)).
(?:(?=1(?<1>){43233})|(?=0)).
(?:(?=1(?<1>){127203})|(?=0)).
(?:(?=1(?<1>){116518})|(?=0)).
(?:(?=1(?<1>){117990})|(?=0)).
(?:(?=1(?<1>){67815})|(?=0)).
(?:(?=1(?<1>){62202})|(?=0)).
(?:(?=1(?<1>){165611})|(?=0)).
(?:(?=1(?<1>){197356})|(?=0)).
(?:(?=1(?<1>){29933})|(?=0)).
(?:(?=1(?<1>){90862})|(?=0)).
(?:(?=1(?<1>){90863})|(?=0)).
(?:(?=1(?<1>){149232})|(?=0)).
(?:(?=1(?<1>){61681})|(?=0)).
(?:(?=1(?<1>){137970})|(?=0)).
(?:(?=1(?<1>){90357})|(?=0)).
(?:(?=1(?<1>){47351})|(?=0)).
(?:(?=1(?<1>){172509})|(?=0)).
(?:(?=1(?<1>){78293})|(?=0)).
(?:(?=1(?<1>){66303})|(?=0)).
(?:(?=1(?<1>){66262})|(?=0)).
(?:(?=1(?<1>){158471})|(?=0)).
(?:(?=1(?<1>){5676})|(?=0)).
(?:(?=1(?<1>){127242})|(?=0)).
(?:(?=1(?<1>){51979})|(?=0)).
(?:(?=1(?<1>){162060})|(?=0)).
(?:(?=1(?<1>){27405})|(?=0)).
(?:(?=1(?<1>){153874})|(?=0)).
(?:(?=1(?<1>){150291})|(?=0)).
(?:(?=1(?<1>){1814})|(?=0)).
(?:(?=1(?<1>){193815})|(?=0)).
(?:(?=1(?<1>){82200})|(?=0)).
(?:(?=1(?<1>){59161})|(?=0)).
(?:(?=1(?<1>){78620})|(?=0)).
(?:(?=1(?<1>){123678})|(?=0)).
(?:(?=1(?<1>){147232})|(?=0)).
(?:(?=1(?<1>){71457})|(?=0)).
(?:(?=1(?<1>){118562})|(?=0)).
(?:(?=1(?<1>){129830})|(?=0)).
(?:(?=1(?<1>){161841})|(?=0)).
(?:(?=1(?<1>){60295})|(?=0)).
(?:(?=1(?<1>){165426})|(?=0)).
(?:(?=1(?<1>){107485})|(?=0)).
(?:(?=1(?<1>){171828})|(?=0)).
(?:(?=1(?<1>){166200})|(?=0)).
(?:(?=1(?<1>){35124})|(?=0)).
(?:(?=1(?<1>){160573})|(?=0)).
(?:(?=1(?<1>){7486})|(?=0)).
(?:(?=1(?<1>){169279})|(?=0)).
(?:(?=1(?<1>){151360})|(?=0)).
(?:(?=1(?<1>){6978})|(?=0)).
(?:(?=1(?<1>){136003})|(?=0)).
(?:(?=1(?<1>){56133})|(?=0)).
(?:(?=1(?<1>){8520})|(?=0)).
(?:(?=1(?<1>){87436})|(?=0)).
(?:(?=1(?<1>){57162})|(?=0)).
(?:(?=1(?<1>){197965})|(?=0)).
(?:(?=1(?<1>){145230})|(?=0)).
(?:(?=1(?<1>){95459})|(?=0)).
(?:(?=1(?<1>){180564})|(?=0)).
(?:(?=1(?<1>){157850})|(?=0)).
(?:(?=1(?<1>){109399})|(?=0)).
(?:(?=1(?<1>){191832})|(?=0)).
(?:(?=1(?<1>){110223})|(?=0)).
(?:(?=1(?<1>){75102})|(?=0)).
(?:(?=1(?<1>){140639})|(?=0)).
(?:(?=1(?<1>){49504})|(?=0)).
(?:(?=1(?<1>){197987})|(?=0)).
(?:(?=1(?<1>){52744})|(?=0)).
(?:(?=1(?<1>){96615})|(?=0)).
(?:(?=1(?<1>){13672})|(?=0)).
(?:(?=1(?<1>){73068})|(?=0)).
(?:(?=1(?<1>){104814})|(?=0)).
(?:(?=1(?<1>){66929})|(?=0)).
(?:(?=1(?<1>){23410})|(?=0)).
(?:(?=1(?<1>){122686})|(?=0)).
(?:(?=1(?<1>){44918})|(?=0)).
(?:(?=1(?<1>){101752})|(?=0)).
(?:(?=1(?<1>){3961})|(?=0)).
(?:(?=1(?<1>){31807})|(?=0)).
(?:(?=1(?<1>){54933})|(?=0)).
(?:(?=1(?<1>){140096})|(?=0)).
(?:(?=1(?<1>){49026})|(?=0)).
(?:(?=1(?<1>){5507})|(?=0)).
(?:(?=1(?<1>){96132})|(?=0)).
(?:(?=1(?<1>){167303})|(?=0)).
(?:(?=1(?<1>){57877})|(?=0)).
(?:(?=1(?<1>){88461})|(?=0)).
(?:(?=1(?<1>){111853})|(?=0)).
(?:(?=1(?<1>){126531})|(?=0)).
(?:(?=1(?<1>){110998})|(?=0)).
(?:(?=1(?<1>){7575})|(?=0)).
(?:(?=1(?<1>){7064})|(?=0)).
(?:(?=1(?<1>){59289})|(?=0)).
(?:(?=1(?<1>){122203})|(?=0)).
(?:(?=1(?<1>){175005})|(?=0)).
(?:(?=1(?<1>){28025})|(?=0)).
(?:(?=1(?<1>){49057})|(?=0)).
(?:(?=1(?<1>){6373})|(?=0)).
(?:(?=1(?<1>){50084})|(?=0)).
(?:(?=1(?<1>){70565})|(?=0)).
(?:(?=1(?<1>){75178})|(?=0)).
(?:(?=1(?<1>){142763})|(?=0)).
(?:(?=1(?<1>){56237})|(?=0)).
(?:(?=1(?<1>){32176})|(?=0)).
(?:(?=1(?<1>){113073})|(?=0)).
(?:(?=1(?<1>){149939})|(?=0)).
(?:(?=1(?<1>){16308})|(?=0)).
(?:(?=1(?<1>){12725})|(?=0)).
(?:(?=1(?<1>){75190})|(?=0)).
(?:(?=1(?<1>){54711})|(?=0)).
(?:(?=1(?<1>){180664})|(?=0)).
(?:(?=1(?<1>){68540})|(?=0)).
(?:(?=1(?<1>){93117})|(?=0)).
(?:(?=1(?<1>){161781})|(?=0)).
(?:(?=1(?<1>){15808})|(?=0)).
(?:(?=1(?<1>){130814})|(?=0)).
(?:(?=1(?<1>){162379})|(?=0)).
(?:(?=1(?<1>){80836})|(?=0)).
(?:(?=1(?<1>){149943})|(?=0)).
(?:(?=1(?<1>){16841})|(?=0)).
(?:(?=1(?<1>){149452})|(?=0)).
(?:(?=1(?<1>){182733})|(?=0)).
(?:(?=1(?<1>){56270})|(?=0)).
(?:(?=1(?<1>){163792})|(?=0)).
(?:(?=1(?<1>){34770})|(?=0)).
(?:(?=1(?<1>){101843})|(?=0)).
(?:(?=1(?<1>){199124})|(?=0)).
(?:(?=1(?<1>){129493})|(?=0)).
(?:(?=1(?<1>){43990})|(?=0)).
(?:(?=1(?<1>){113112})|(?=0)).
(?:(?=1(?<1>){71129})|(?=0)).
(?:(?=1(?<1>){61402})|(?=0)).
(?:(?=1(?<1>){145852})|(?=0)).
(?:(?=1(?<1>){98781})|(?=0)).
(?:(?=1(?<1>){141790})|(?=0)).
(?:(?=1(?<1>){163235})|(?=0)).
(?:(?=1(?<1>){110566})|(?=0)).
(?:(?=1(?<1>){117737})|(?=0)).
(?:(?=1(?<1>){67050})|(?=0)).
(?:(?=1(?<1>){68075})|(?=0)).
(?:(?=1(?<1>){124047})|(?=0)).
(?:(?=1(?<1>){181587})|(?=0)).
(?:(?=1(?<1>){125429})|(?=0)).
(?:(?=1(?<1>){112118})|(?=0)).
(?:(?=1(?<1>){196088})|(?=0)).
(?:(?=1(?<1>){25082})|(?=0)).
(?:(?=1(?<1>){178684})|(?=0)).
(?:(?=1(?<1>){13822})|(?=0)).
(?<-1>){10094986}
(?(1)(?!))
$

(?:(?=1(?<1>){n})|(?=0)).행은 숫자 1이 있으면 n빈 문자열을 그룹화 1하고 a 0가 있으면 아무 것도 수행하지 않습니다 . (?<-1>){10094986}(?(1)(?!))그런 다음 그룹 1의 끝까지 빈 문자열의 총 수가 10094986인지 확인합니다. 따라서 우리의 목표는 전체가 10094986이되도록 숫자의 하위 집합을 찾는 것입니다. 이는 정확히 하위 집합 합계 문제입니다. 배낭 문제이며 NP가 완전합니다.

Regex Hero 에서 테스트되었습니다 (Regex Storm 시간 초과).


2
일치 : 01111111111111111111111011001111111111011111111111111111111101111111111 11111111111111111111011111111000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000 (공백을 제거하십시오). 불일치 : KnapsackAlgorithm . Ubuntu 컴퓨터에 Silverlight를 설치하는 것은 쉽지 않습니다. 그러나 이것은 다른 테스터에서 작동했습니다.
jimmy23013

@ user23013 아 죄송합니다. Silverlight가 필요하다는 것을 잊었습니다. 그러나 솔직히 말해서, 나는 운이 좋지 않거나 많은 해결책이 있습니다. 왜냐하면 그것은 결국 0의 어리석은 긴 사슬이기 때문입니다. 그런 다음 다시 32 비트 int 장벽을 극복해야합니다. 아이디어가 있다고 생각합니다.
Sp3000

최신 답변에 이미 700 비트 이상의 정수가있었습니다!
jimmy23013

@ user23013 그리고 당신은 그것을 분해하도록 우리에게 말하고 있습니까? 그러니까! : P
Sp3000

2
분해 할 정수는 1536 비트입니다.
jimmy23013

4

.NET 플레이버 (52506 바이트)

부분 집합, 디럭스 에디션.

Regex here , 확장 버전 here , RegExLibRegex Hero 에서 테스트


일치 : 1000010001000000001101011000001101110101001010011101000101010011011101000001010101001000010010000111011101100101001101001111000111010101100000101000101010110001010101001100100001110010001101010101100010110011000000110110000000011111101000001000011111100010

불일치 : Huzzah for NP-complete regexes

이 정규식은 하나의 거대한 하위 집합 합계 문제이며 16 개의 그룹을 사용하여 데이터를 저장합니다. 1문자열의 각 숫자는 16 개의 10 비트 숫자를 나타내며 함께 160 비트 정수를 나타냅니다. 정규식의 마지막 몇 줄은 그룹의 값을 전달하므로 그룹 2-16은 1023까지 올라갑니다 (예 : 1 * 1023 + 1024는 2 * 1023 + 1). 하나의 큰 문제와 달리 문제를 요약하십시오.


72 시간 내내 축하합니다! 이제 키를 표시하여 크래킹으로부터 답변을 잠글 수 있습니다. 당신이 할 때까지 대답은 여전히 ​​금이 갈 수 있습니다.
Martin Ender

4

.NET 플레이버, 53,884 바이트 [안전]

GnuPG에 의해 생성되었습니다! 그리고 pgpdump에 의해 추출됩니다. 온라인 테스터에서 더 긴 버전이 실패했기 때문에 1536 비트입니다.

정규식은 여기에 있습니다 : http://pastebin.com/PkJnj9ME

옵션을 선택하지 않은 상태 에서 RegExLib에서 테스트했습니다 . 나는 그들에게 너무 많은 문제를 일으키지 않기를 바랍니다.

쉬운 버전을 먼저 해독 하고 싶을 것입니다 . 키가 훨씬 짧은 것을 제외하고는 이것과 동일합니다.

이 번호를 원할 수도 있습니다.

1877387013349538768090205114842510626651131723107399383794998450806739516994144298310401108806926034240658300213548103711527384569076779151468208082508190882390076337427064709559437854062111632001332811449146722382069400055588711790985185172254011431483115758796920145490044311800185920322455262251745973830227470485279892907738203417793535991544580378895041359393212505410554875960037474608732567216291143821804979045946285675144158233812053215704503132829164251

열쇠

시합:

Ëòčĵċsïݲ¤ėGâĥÓŧÿÃiTüū&0EĚĵŒR@bĵ¤¿Ĉ=ķüÙļÞďYaŃīŲĢŪÕďųïyĘŊŢĝĪĘŠćĢmtŠîĽþĽłŶāĨĩģTő!ĺw=aŧïųţĨíœą¸Ëč!,ĵţ¨ŌąŜ7ć<ůū¹"VCæ>õêqKËĖ¡ôÕÂúëdčÜÇĺřGĝ¢ÈòTdĩŤŭi§aćŎŭųä«´3ĚΦîŇĬÒÕ¥ńü½å±ì³Jõ«D>ìYũʼn5öķ@ŪĠďàÂIĭųė!

불일치 :

1111111111111111

소수

1332079940234179614521970444786413763737753518438170921866494487346327879385305027126769158207767221820861337268140670862294914465261588406119592761408774455338383491427898155074772832852850476306153369461364785463871635843192956321
1409365126404871907363160248446313781336249368768980464167188493095028723639124224991540391841197901143131758645183823514744033123070116823118973220350307542767897614254042472660258176592286316247065295064507580468562028846326382331

설명은 쉬운 버전 입니다.

생성기 스크립트 (CJam)

'~),'!i>"+.()?*\\[]{|}^$/,^-:#"-
'ǝ,'¡i>173c-+289<:T;

95:F;
95:G;

"
^
(?=["T",]{"FG+)`"}$)
(?=.{"F`"},)
(?!.*,.*,)
(?:
    (?(X)
        (?<-X>)
        (?(L)(?<-L>)(?<l>)|){16}
    |
        (?:
            "
            [T289,]z
            {[~17md["(?<l>){"\'}]["(?<L>){"@'}]]}%'|*
            "
        )
        (?<X>)
    )
    (?=.*,
        (?:
            (?(Y)
                (?<-Y>)
                (?(R)(?<-R>)(?<r>)|){16}
            |
                (?:
                    "
                    [T289,]z
                    {[~17md["(?<r>){"\'}]["(?<R>){"@'}]]}%'|*
                    "
                )
                (?<Y>)
            )

            (?(l)
                (?<-l>)(?<x>)
                (?(r)(?<-r>)(?<y>)(?<v>)|){16}
                (?(y)(?<-y>)(?<r>)|){16}
            |){16}
            (?(x)(?<-x>)(?<l>)|){16}

            (?(p)(?<-p>)(?<s>)(?<z>)|){"F2*(`"}
            (?(z)(?<-z>)(?<p>)|){"F2*(`"}
            (?(q)(?<-q>)(?<s>)(?<z>)|){"G2*(`"}
            (?(z)(?<-z>)(?<q>)|){"G2*(`"}
            "
            "
            (?(s)
                (?<-s>)
            "FG+(2**
            "
                (?(v)(?<-v>)(?<a"FG+(2*`">)|){256}
            "
            ["
            |
                (?(v)(?<-v>)(?<a"">)|){256}
            )
            "]aFG+(2*,W%m*{~\~@`\}/
            "
            (?(r)(?<-r>)|){16}
            (?<q>)
        ){"G2*`"}
        (?<-q>){"G2*`"}
    )
    (?(l)(?<-l>)|){16}
    (?<p>)
){"F2*`"},

"
[
l~17bW%_,FG+2*\- 0a*+
FG+2*,
]z
{
~:A`:B;:C;
"
(?<-a"B">){"C`"}
(?(a"B")(?<-a"B">){17}(?<a"A)`">)|){4100}
(?(a"B")(?!)|)"
}/

]:+N9c+-

입력은 위의 숫자 여야합니다.

완료되면이 프로그램으로 솔루션을 생성 할 수 있습니다.

'~),'!i>"+.()?*\\[]{|}^$/,^-:#"-
'ǝ,'¡i>173c-+289<:T;

95:F;
95:G;

{
r~289bW%_,FG:F;\- 0a*+
{T=}%
}2*',\

입력은 2 개의 정수 여야합니다.


너무 나쁘다. RegExLib이 종료되었습니다. 사람들은 Silverlight 또는 로컬 테스터를 더 잘 사용해야한다고 생각합니다. 그러나 나는 그들을 테스트 할 수 없습니다.
jimmy23013

IIRc, RegexHero는 Silverlight를 사용하는 브라우저의 .NET 테스터입니다.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

큰 정수에 대한 또 다른 아이디어는 200에 가까운 product mod 소수를 계산하는 것입니다. 더 빠릅니다. 그러나 코드는 훨씬 길며 정수 인수 분해 답변에서는 그렇게하지 않을 것입니다.
jimmy23013

72 시간 내내 축하합니다! 이제 키를 표시하여 크래킹으로부터 답변을 잠글 수 있습니다. 당신이 할 때까지 대답은 여전히 ​​금이 갈 수 있습니다.
Martin Ender

4

PHP, 395 바이트 [ Noneneo에 의해 크랙 ]

^( *)( *)( *)(['.-])((?!\4)(?4)+?)((?!\4|\5)(?4)++)\1\3whale
(?=.(.))\6.\7\4(?!\4|\6)([_\/])\3(?!(?11))\8\2(?=\2)\3\1_((?=\4+.).\5(?!\6)\5)(?!.?')\7\4
(?=.\7)\6.([,`])\3{2}(?=.((?!\8)[_\/])\11)\Q(_\E.\4{2}(?!\.)\5((?!\10)(?10)(?!\4+|\5|\6))\1\3{3}(\\)
(\3{3})\13\2{2}\1{1}\3+(?<=\S {10})\4\1\3\|
\1(?=\12)(?12)(?!`,)\10\4(\11{2})\4\14\10\15\9\8
\14{2}(?=\6)['-]\4(?<!-)\11\8\11\4\6\11\15\.-|(?!)

내 마지막 항목보다 더 나은 퍼즐.

참고 : 일치하는 키는 여러 줄이며 각 줄은 줄 바꿈 문자로 구분됩니다 \n. ASCII 아트를 재구성하십시오!

다음은 정규식 데모 입니다.


3
일치 : 202e272d207768616c650a2d3a3a2e2f202f205f2e27273a2e0a2d3a2c2020285f5f2e2e27602020205c0a2020205c202020202020202020202e207c0a602c2e5f5f2e2020202c5f5f2e27272f0a2020202020202d2e5f2f5f2e2d5f5f5f2e2d(16 진수 인코딩). 불일치 : IDon'tThinkIGotTheRightPicture. 증거 작업 공간 : regex101.com/r/gF9pU0/1
nneonneo

1
트윗 담아 가기 당신은 그것을 해결했습니다 : D 그러나 올바른 그림은 여기에 있습니다 : regex101.com/r/oM9rC4/1
Unihedron

1
예, 공간이 충분하지 않다고 생각했습니다 (그러나 정규 표현식이 너무 강력하게 확인되지 않았습니다). 그리고 .-'처음에 교환 한 것 같습니다 .'-.
후시

3

펄 맛, 97 [금이 간]

키 길이 제한으로 인해 이것이 너무 쉬울 것 같습니다.

^([^,]+),(?!\1)([^,]+),(?!\1|\2,)([^,]+),(?!\1|(?:\2|\3),)([^,]+),(?=.\2+$)(?=.\3+$)(?=.\4+$)\1+$

아이디어가 있다고 생각되면 더 긴 버전을 사용해보십시오 (도전의 일부는 아님).

^((?:[^,]{3})+),(?!\1)([^,]+),(?!\1|\2,)([^,]+),(?!\1|(?:\2|\3),)([^,]+),(?!\1|(?:\2|\3|\4),)([^,]+),(?!\1|(?:\2|\3|\4|\5),)([^,]+),(?!\1|(?:\2|\3|\4|\5|\6),)([^,]+),(?!\1|(?:\2|\3|\4|\5|\6|\7),)([^,]+),(?=.\2+$)(?=.\3+$)(?=.\4+$)(?=.\5+$)(?=.\6+$)(?=.\7+$)(?=.\8+$)\1+$

1
경기 : aaaaaaa,a,aa,aaa,aaaaaaa. 불일치 : aaaabaaacaaadaaa.
jimmy23013

더 긴 버전 : Match : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,a,aa,(이 문자를 aaaa,aaaaaaa,aaaaaaaa,aaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaa,제거하십시오 ) (이 문자를 제거하십시오) aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa. 불일치 :aaaabaaacaaadaaa
jimmy23013

@ user23013 : 짧은 버전이 맞습니다! 캡처 그룹의 길이가 두 자 이상이어야 키를 약간 길게 만들었지 만 키를 변경하는 것을 잊었습니다 .P 더 긴 버전은 올바르지 않습니다.
Ell

이 사이트는 내가 게시 할 때 보이지 않는 특수 문자를 추가했습니다. 나는 그것이 지금 고쳐 졌다고 생각한다. (없이 (remove these characters))
jimmy23013

@ user23013 네, 일치합니다. 나는 그것이 그렇게 쉬운 일이되기를 정말로 계획하지 않았다. : P
Ell
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.