我想匹配行首的空白区域,但只有下一个单词是PATCH,PUT,POST或GET
edit_user_registration GET /users/edit(.:format) registrations#edit
PATCH /users(.:format) registrations#update
在上面的情况下只有第二行的空格。我试过这个:
(^\s*)+(POST|GET|DELETE|PUT|PATCH|OPTIONS)
问题是,即使是" PATCH"单词,但想在#34; PATCH"。
之前只匹配空格答案 0 :(得分:2)
您可以改为使用前瞻:
^\s*(?=(?:POST|GET|DELETE|PUT|PATCH|OPTIONS)\b)
最后\b
使模式仅与整个单词匹配。如果它不是您所需要的,您可以将其删除。
正向前瞻只检查模式是否与文本匹配并返回true或false,无论是失败还是传递,都不会消耗字符。
此外,(\s*)+
(一个或多个零个或多个空白符号)可以缩短为\s*
( 0+空白符号)
答案 1 :(得分:0)
您可以使用:
^\s*(?=POST|GET|DELETE|PUT|PATCH|OPTIONS)
试试here。
此正则表达式将匹配以匹配动词开头的行上的空字符串。如果您不想要此行为,请将*
更改为+
:
^\s+(?=POST|GET|DELETE|PUT|PATCH|OPTIONS)