在regex中,是否有特殊字符可以加入规则组
我需要匹配每一行的前2个字符和最后2个数字
这与前2个字符匹配
(^..) 这与最后两个数字相匹配
([0-9][0-9]$)如何将这两条规则结合起来?我试过了,但没有成功
(^..)([0-9][0-9]$)发布于 2013-06-29 05:07:16
(^..).*([0-9][0-9]$)您可以使用.*修饰符来匹配“介于两者之间的一切”
发布于 2013-06-29 05:05:53
好的,你也需要匹配中间的部分。只允许任意多个任意字符:
(^..).*([0-9][0-9]$)请注意,在大多数情况下,.与换行符不匹配。如果您的输入可能包含换行符,请使用s (“单行”,有时是"dotall")修饰符来更改.的含义。否则(即在JavaScript中)使用[\s\S]*。
还请注意,仅连续使用两个正则表达式可能会更容易、更具可读性和效率:
^..
[0-9][0-9]$不需要分组/捕获和重复。
编辑:
请注意,这两个并不是完全等价的。第一个至少需要四个字符(因为[0-9][0-9]无法再次匹配..匹配的两个字符),而第二个可能只包含两个数字(在这种情况下,..将匹配这些相同的数字)。这取决于你在寻找哪种语义。只使用一个正则表达式但相当于两个正则表达式解决方案的第三个解决方案将使用lookahead:
^(?=(..))(?=.*([0-9][0-9])$)这将允许您匹配x12,第一个捕获是x1,第二个捕获是12。
发布于 2013-06-29 05:06:24
您需要添加anything goes here -也称为.*
(^..).*([0-9][0-9]$)https://stackoverflow.com/questions/17373650
复制相似问题