把这个字符串
THX1138: The Movie
Run Code Online (Sandbox Code Playgroud)
通过这个正则表达式
(.)(.)(\d)(\d+)
Run Code Online (Sandbox Code Playgroud)
匹配这个
HX1138
Run Code Online (Sandbox Code Playgroud)
通过从比赛中省略T,它似乎从右向左移动,但我认为默认是从左到右.例如,有人问如何让正则表达式从右向左移动,所以我认为默认是从左到右.添加另一个(.)
(.)(.)(.)(\d)(\d+)
Run Code Online (Sandbox Code Playgroud)
它匹配
THX1138
Run Code Online (Sandbox Code Playgroud)
确认左侧观察权.因此,如果有多个捕获组,它会在第一次捕获后从右向左移动吗?
让我们分解他们
(.)(.)(\d)(\d+)
(.):匹配任何单个字符
(.):匹配任何单个字符
(\d):匹配任何单个数字
(\d+):匹配一个或多个数字.
THX1138: The Movie从左到右移动你的字符串,前三个字符不能匹配,因为X不是数字.因此它向前移动一个角色,并找到匹配:H并X匹配"任何单个角色"的要求,1匹配"任何单个数字",并且"138"被插入到决赛中\d+.
(.)(.)(.)(\d)(\d+)
(.):匹配任何单个字符
(.):匹配任何单个字符
(.):匹配任何单个字符
(\d):匹配任何单个数字
(\d+):匹配一个或多个数字.
现在,当它通过你的字符串,从左向右,它会立即找到匹配,因为T,H和X所有的比赛"任何单个字符",并再次,1符合"任何一个数字",并138在咕噜咕噜进入决赛\d+.