如何使用一个属性来扩展已经存在的正则表达式,该属性告诉正则表达式不能超过最大长度(比方说)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})(\]?)}
如果它必须是完全基于正则表达式的解决方案,最好的方法是使用环视。
查看这个例子:http://regex101.com/r/yM3vL0 http://regex101.com/r/yM3vL0
我在这里所做的只是匹配最多的字符串three长字符。当然,对于我的例子来说,这不是最好的方法。但请忽略这一点,我只是想展示一个适合您的示例。
您还必须锚定您的模式,否则引擎将忽略环视(我需要深入解释这一点吗?)
换句话说,您可以在正则表达式中使用以下内容将其限制为最多 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})(\]?)
我也觉得我有责任告诉你你的正则表达式很糟糕,你应该感到难过。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)