2013-06-06 1 views
0

제목에 나와 있듯이 임의의 위치에서 주어질 수없는 서브 세트를 포함하는 2 진 문자열과 일치하는 정규 표현식을 작성하려고합니다. 예를 들면 모두 제로 (또는 적어도 하나의 1) :모두 0이 아니어야하는 서브 세트가 들어있는 바이너리 문자열과 일치합니다.

binary: 100101 
      ------- 
position: 123456 

임의의 위치를 ​​상기 제 1 하나이기 때문에 그 후, 새 창을 true 일치 123이고;
임의의 위치가 235 인 경우 일치하는 결과가 false인데, 그 중 아무 것도 1이 아니기 때문에 일치합니다.
임의의 위치가 236 인 경우 일치하는 결과가 true이므로 마지막 하나는 1입니다.

나는 정규 표현식을 알고 있지만, 실제로이 접근법을 모릅니다. 어떤 도움을 주시면 감사하겠습니다.

+0

정규식을 사용해야합니까? 주어진 위치 집합에 대한 커스텀 정규식을 만드는 대신, 현재 위치에서 1을 찾자마자 위치 집합을 반복하고 일치를 발표 할 수 있습니다 (1을 찾지 못하면 일치하는 항목이 있음). – naitoon

답변

4

문자열이 1과 0만으로 구성 될 수 있다고 가정하면 테스트를 반대로하십시오. 각 임의의 위치에서 0과 일치하는 정규식을 구성한 다음 일치하지 않는지 테스트합니다.

각 위치에 대해 해당 색인에 '0'을 저장하십시오. 그렇지 않으면 '.' 모든 문자를 허용합니다. 예를 들어

:

235 -> .00.0. 

그런 다음 어떤 경기를보기 위해 테스트 :
.00.0. matches '100101' 

그래서 235 false이 될 것입니다.

+0

현명한 아이디어, 정말 고맙습니다. :) – bingjie2680

관련 문제