例如,给定字符串"2009/11/12"我想得到正则表达式("\ d {2}/d {2}/d {4}"),所以我将能够匹配"2001/01/02"也是.
有什么东西可以做到吗?相似的东西?任何想法'如何做到这一点?
Tom*_*lak 25
有text2re,一个免费的基于Web的"正则表达式"生成器.
不过,我不认为这在源代码中可用.我敢说没有自动正则表达式生成器可以在没有用户干预的情况下正确使用它,因为这需要机器知道你想要什么.
请注意,text2re使用基于模板,模块化和非常通用的方法来生成正则表达式.它生成的表达式有效,但它们比同等的手工制作表达式复杂得多.它不是学习正则表达式的好工具,因为它在设置示例时做得非常糟糕.
例如,字符串"2009/11/12"将被识别为yyyymmdd模式,这是有帮助的.该工具将其转换为这个 125个角色的怪物:
((?:(?:[1]{1}\d{1}\d{1}\d{1})|(?:[2]{1}\d{3}))[-:\/.](?:[0]?[1-9]|[1][012])[-:\/.](?:(?:[0-2]?\d{1})|(?:[3][01]{1})))(?![\d])
Run Code Online (Sandbox Code Playgroud)
手工制作的等效物仅占五分之二(50个字符):
([12]\d{3})[-:/.](0?\d|1[0-2])[-:/.]([0-2]?\d|3[01])\b
Run Code Online (Sandbox Code Playgroud)
B.E*_*.E. 12
为您的问题编写一般解决方案是不可能的.问题是任何发电机可能都不知道你要检查什么,例如是否应该允许"2312/45/67"?"2009.11.12"怎么样?
你能做的就是自己编写一个适合你确切问题的发生器,但是一般的解决方案是不可能的.