Regex 正则表达式替换问题
正则表达式是Regex 正则表达式替换问题,regex,Regex,正则表达式是 (\w(s)\b) 示例词 Dress \1返回“连衣裙” \2返回“Dres” 所以我想: \1\2将返回“Dress Dres” 但它的回报是: "Dress s" 我怎样才能让它返回“Dress Dres”你误读了regex测试仪中的某些内容。实际上,\1等于ss,\2等于s。这是因为您只匹配了两个字符,\w和s。即使您在\w(即(\w+(s)\b))中添加了一个1+量词,您仍然可以匹配Dress和s,因为第二个捕获组实际上只是捕获s 如果你稍微移动一下这些捕
(\w(s)\b)
示例词
Dress
- \1返回“连衣裙”
- \2返回“Dres”
- \1\2将返回“Dress Dres”
"Dress s"
我怎样才能让它返回“Dress Dres”你误读了regex测试仪中的某些内容。实际上,
\1
等于ss
,\2
等于s
。这是因为您只匹配了两个字符,\w
和s
。即使您在\w
(即(\w+(s)\b)
)中添加了一个1+量词,您仍然可以匹配Dress
和s
,因为第二个捕获组实际上只是捕获s
如果你稍微移动一下这些捕获组,你就可以成功地捕获“Dress”和“Dres”。请注意,您可以使用
\0
获得整个正则表达式匹配,因此这里不需要嵌套的捕获组
匹配:(\w+)s\b
替换:\0\1
Dress Dres首先,使用带有
\w
的+
量词来匹配一个或多个单词字符(您仅将一个与\w
匹配)。这就是为什么您只得到s
和s
(请参见将ss
捕获为组1和s
捕获为组2)
和使用:
(\w+)s\b
使用\0\1
替换,其中\0
反向引用整个匹配,而\1
反向引用使用(\w+)
捕获的内容。看
或者,如果是Perl,则使用(\w+)s)\b
并替换为\1\2
(请参阅)
请参见请提供在中使用正则表达式的语言。