2010-05-25 4 views
11

StackOverflow Podcast 중 하나 (예 : #11 또는 #12의 DB 테스트를 위해 데이터 생성을 논의한 사람)에서 Jeff는 "역 정규 표현식"과 같은 것을 언급했습니다. 그 목적 : 주어진 정규식, 결국 정규식과 일치하는 문자열을 생산하고 있습니다.데이터를 생성하기 위해 정규 표현식을 뒤집습니다

이 개념 전체에 대한 올바른 용어는 무엇입니까? 이것은 잘 알려진 개념입니까?

+3

기타 정보 : http://stackoverflow.com/questions/205411/random-string-that-matches-a-regexp – miku

+0

http://www.texamples.com/how-to-generate-random-passwords -in-java/this가 도움이 될 것입니다. – brainless

답변

0

"역 정규 표현식"과 같은 것은 없습니다. 정규 표현식은 단지 표현식입니다. 언어을 표현하며,이 문자열은 (아마도 무한한) 문자열 집합으로 구성됩니다.

반전은 사용입니다. 여기서 문자열은 언어에 있는지 여부를보고하는 데 일반적으로 사용되며 언어에서 문자열을 생성하는 데 사용됩니다.

4

추상 :

한 전문성이 "역 정규식"것 Recursive transition network (흥미로운 예로 postmodernism generator로). 용어에 관해서


하십시오 정규식 모든 단어는 식으로 유사한 특정 일반 언어 (즉, 모든 입력 속하는 기술 문법 형태 인).

따라서 하나의 질문을 호출 할 수 있습니다 또는 "어떻게 지정된 정규 언어에 속하는 임의의 단어를 얻을 수 있습니다" "주어진 정규식과 일치하는 임의의 단어를 만들 수 있습니다 방법"을 참조하십시오.

+0

펌핑 보조 정리를 사용하여 증명할 수있는 컨텍스트 자유 문법 (CFG)은 규칙적이지 않습니다. 그러나 비 결정적 유한 상태 오토 마톤 (NFA)을 대신 사용하여 여전히 RTN에 대한 아이디어를 적용 할 수 있습니다. – Thomas

+1

@ 토마스 : 그렇습니다. 그러나 일반 컨텍스트는 컨텍스트가 없기 때문에 같은 개념을 적용 할 수 있습니다 (전문화 만 가능). – Dario

+0

아, 분명히, 당신 말이 맞아요. – Thomas

5

Perl 모듈 String::Random (CPAN에서)이 수행합니다. 정규식의 하위 집합을 가져 와서 무작위로 살펴 봅니다.

+0

String :: Random은 반드시 솔루션 세트에서 가능한 모든 값을 생성합니까? 비슷한 문제가 있지만 모든 가능한 값이 필요합니다. 나는 무겁게 내 언어를 제한하고자합니다. – IceArdor

0

정규식에서 데이터를 생성 할 수 있습니다. 이 분야에서는 일부 오픈 소스 프로젝트가 개발 중입니다.

how to generate random password from regex에 대한 자습서는 어떻게 수행되는지 설명합니다. xeger (regex의 반대, opensource 프로젝트)이 튜토리얼에서 사용됩니다. 자세한 내용은 튜토리얼을 참조하십시오.

관련 문제