如何使用一个属性来扩展已经存在的正则表达式,该属性告诉正则表达式不能超过(假设)255的最大长度?
我有以下正则表达式:
([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)
我试过这样,但失败了:
{.,255([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)}
Fir*_*Dib 12
如果它必须是一个完全基于正则表达式的解决方案,最好的方法就是使用外观.
查看此示例:http://regex101.com/r/yM3vL0
我在这里做的只是匹配最多三个字符长的字符串.当然,对于我的例子,这不是最好的方法.但忽略这一点,我只是想展示一个适合你的例子.
您还必须锚定您的模式,否则引擎将忽略该环视(我是否必须深入解释这一点?)
换句话说,您可以在正则表达式中使用以下内容将其限制为最多255个字符:
^(?!^.{256})([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)
Run Code Online (Sandbox Code Playgroud)
我也觉得有责任告诉你,你的正则表达很糟糕,你应该感觉很糟糕.