我正在尝试创建一个正则表达式,从字符串中选择最长的两个选项。
数字值最多15个字符长或任何值最多11个字符长。
到目前为止我有这个:
^([0-9]{1,15}|.{1,11})
但是例如字符串:'7elevenshopfood'
缩短为'7'
,因为它查看了paranthesis的第一部分。如果我切换到
^(.{1,11}|[0-9]{1,15})
字符串'123456789123456789'
缩短为'12345678912'
,因为它再次查看表达式的第一部分。
任何有更大regexp
知识的人都有自己的想法?
这就是大多数正则表达式方言的工作方式,交替按照它们的编写顺序进行测试,第一个匹配部分将结束搜索。
在你的情况下,你可以通过以下方式解决这个问题:
^(\d{12,15}|.{1,11})