从右到左

Bra*_*cil 1 regex

把这个字符串

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)

确认左侧观察权.因此,如果有多个捕获组,它会在第一次捕获后从右向左移动吗?

Fli*_*mzy 5

让我们分解他们

  1. (.)(.)(\d)(\d+)

    (.):匹配任何单个字符
    (.):匹配任何单个字符
    (\d):匹配任何单个数字
    (\d+):匹配一个或多个数字.

    THX1138: The Movie从左到右移动你的字符串,前三个字符不能匹配,因为X不是数字.因此它向前移动一个角色,并找到匹配:HX匹配"任何单个角色"的要求,1匹配"任何单个数字",并且"138"被插入到决赛中\d+.

  2. (.)(.)(.)(\d)(\d+)

    (.):匹配任何单个字符
    (.):匹配任何单个字符
    (.):匹配任何单个字符
    (\d):匹配任何单个数字
    (\d+):匹配一个或多个数字.

    现在,当它通过你的字符串,从左向右,它会立即找到匹配,因为T,HX所有的比赛"任何单个字符",并再次,1符合"任何一个数字",并138在咕噜咕噜进入决赛\d+.