(^.)(\w+)(.$) $2
删除了第一个和最后一个字符,但我不确定它是如何工作的。
我的理解:
(^。)匹配行首的任何一个字符。 (。$)匹配行尾的任何一个字符。 (\ w +)任何单词字符(至少需要一个字符) $ 2调用第二个括号(\ w +)
测试1:
Input: 91239
Output: 123
的Test2:
Input: \123\
Output: 123
为什么删除反斜杠?这是一种可以接受的方法来删除反斜杠(行的开头和结尾)吗?
Test3的:
Input: /123/5
Output: /123/5
我迷失在这里。为什么它不适用于/ 123/5。
谢谢!
答案 0 :(得分:2)
为什么删除反斜杠?这是一种可以接受的方法来删除反斜杠(行的开头和结尾)吗?
删除反斜杠,因为.
匹配任何字符,包括\
。第1组是第一个反斜杠,第2组是每个字符但第一个和最后一个,第3组是最后一个反斜杠。
我迷失在这里。为什么它不适用于/ 123/5。
\w
匹配0-9,a-z,A-Z和_。 \w+
消费123
。以下.
消费/
。以下$
与剩余的5
不匹配,因此与该输入不匹配。
答案 1 :(得分:1)
为什么它对/ 123/5不起作用。
\w
相当于[a-zA-Z0-9_]
,.
匹配任何字符..所以在/123/5
之前/
匹配1
之前^.
与5
匹配.$
,但123/
未匹配,因为/
未与\w
匹配
正则表达式(^.)(\w+)(.$)
表示(解释):
(^.)
以任何字符开头(括号=>捕获组1)(\w+)
后跟集(+)
中的多个[a-zA-Z0-9_]
个字符(括号=>捕获组2)(.$)
以任何字符结尾(括号=>捕获组3)最后$2
表示反向捕获第2组..即由模式(\w+)
捕获的组。