Python - 从正则表达式中生成指定长度的随机字符串
我的字符串长度不能超过255个字符。 以下正则表达式可以我使用exrex.getone(规则运算)函数用于生成其中我无法控制生成的字符串长度的字符串应采取的示例 -Python - 从正则表达式中生成指定长度的随机字符串
^([a-zA-Z0-9]{1}((-|[a-zA-Z0-9])*[a-zA-Z0-9])*[.])*[a-zA-Z]{1}((-|[a-zA-Z0-9])*[a-zA-Z0-9])*\.?$
。
如何生成满足正则表达式的预期长度的字符串?
直到现在我还没有看到任何满足此条件的答案。
从exrex网站:
有无穷匹配串的正则表达式(例如:[A-Z] +),在这些情况下exrex限制的无限部分的最大长度。
和代码本身:
418 def getone(regex_string, limit=20):
419 """Returns a random matching string to a given regular expression
420 """
421 return _randone(parse(regex_string), limit)
所以这是一个限制关键字。我无法确定这是否限制了整个弦或每个无限的部分,但我认为它是后者。尝试限制此更小的东西,如4.
感谢您的好消息,但我真的很惊讶,对于正则表达式^ sip:\ S + $ exrex正在生成字符串_sip:_这是错误的。我知道这与目前的问题没有关系,只是问。你可以请这里帮忙。有可能像exrex()这样的函数推荐用于正则表达式可能会产生无效的string.thanks。 – MadhuSudan
您写的正则表达式意味着:从行的开头写入“sip:”,然后写入none-spaces直到结束。我检查过,exrex可能不支持常用字符集的'not'版本,所以'\ S'可能确实不起作用。使用[^ \ s]替代 - 为我工作。 – kabanus
你的意思是**^\ sip:\ S + $ **但这对我没有效用。你能分享一下,你使用哪个正则表达式? 你能分享任何支持这些类型的正则表达式的正则表达式生成器吗? 实际上,在我的脚本中,我只能从100个正则表达式中生成字符串,所以我无法手动编辑它们。我必须从这些正则表达式中使用一些字符串生成器,在这种情况下可以正常工作。 非常感谢。 – MadhuSudan
可能的重复[在Python中反转正则表达式](http://stackoverflow.com/questions/492716/reversing-a-regular-expression-in-python) – shadow0359
@ shadow0359我已经在这里检查了答案(在Python中反转正则表达式),但它不符合上述条件。所以你可以请删除它作为重复。谢谢。 – MadhuSudan
exrex是否支持断言,所以你可以用'^(?=。{0,255} $)...'作为前缀的正则表达式? –