대한 파싱 간단한 정규 표현식에 대한 모든 순열의 발전기를 돌려 this regex inverter가 포함되어 있습니다. 여기에 해당 모듈의 테스트 케이스의 일부는 다음과 같습니다
[A-C]{2}\d{2}
@|TH[12]
@(@|TH[12])?
@(@|TH[12]|AL[12]|SP[123]|TB(1[0-9]?|20?|[3-9]))?
@(@|TH[12]|AL[12]|SP[123]|TB(1[0-9]?|20?|[3-9])|OH(1[0-9]?|2[0-9]?|30?|[4-9]))?
(([ECMP]|HA|AK)[SD]|HS)T
[A-CV]{2}
A[cglmrstu]|B[aehikr]?|C[adeflmorsu]?|D[bsy]|E[rsu]|F[emr]?|G[ade]|H[efgos]?|I[nr]?|Kr?|L[airu]|M[dgnot]|N[abdeiop]?|Os?|P[abdmortu]?|R[abefghnu]|S[bcegimnr]?|T[abcehilm]|Uu[bhopqst]|U|V|W|Xe|Yb?|Z[nr]
(a|b)|(x|y)
편집 :
는 (! 번) 당신의 순열의 목록을 작성, 당신의 무작위 선택을 한 다음 목록에 random.choice
를 호출하려면 정규식과 일치하는 임의의 문자열이 필요할 때마다 다음과 같이 (테스트되지 않음)
class RandomString(object):
def __init__(self, regex):
self.possible_strings = list(invRegex.invert(regex))
def random_string(self):
return random.choice(self.possible_strings)
+1 정말 대단합니다! – katrielalex
거의 무엇을 찾고 있습니다. +1 –
또한이 모듈을 UtilityMill의 유틸리티로 패키징했습니다 : http://utilitymill.com/utility/Regex_inverter. 모든 UM 유틸리티는 XML 및 JSON API를 노출하므로 코드에서 원격으로 호출 할 수 있으며 UtilityMill은 정규식 반전 처리를 수행합니다. – PaulMcG