https://www.myregextester.com/?r=6fba8b94
正则表达式
class RotatableImageButton: UIButton {
override func layoutSubviews() {
let originalTransform = imageView?.transform
imageView?.transform = CGAffineTransformIdentity
super.layoutSubviews()
if let originalTransform = originalTransform {
imageView?.transform = originalTransform
}
}
}
示例Word
(\w(s)\b)
所以我想:
但它返回:
Dress
如何让它返回" Dress Dres"
答案 0 :(得分:3)
你在那个正则表达式测试中误读了一些东西。实际上,\1
等于ss
,\2
等于s
。这是因为您只匹配两个字符\w
和s
。即使您向\w
添加了1 +量词(即(\w+(s)\b)
),您仍然只匹配Dress
和s
,因为第二个捕获组是字面上只是捕获s
。
如果您稍微移动一些捕捉组,您可以成功捕捉" Dress"和#34; Dres"。快速说明一下,您可以将整个正则表达式与\0
匹配,这样嵌套的捕获组在这里就没有必要了。
匹配: (\w+)s\b
替换: \0 \1
Output:着装Dres
答案 1 :(得分:2)
首先,使用+
量词与\w
匹配一个或多个单词字符(您只匹配1与\w
)。这就是为什么你只得到s
和s
(请your regex in action将ss
称为第1组,将s
作为第2组)。
并使用:
(\w+)s\b
\0 \1
替换,其中\0
反向引用整个匹配,\1
反向引用(\w+)
捕获的内容。请参阅demo here。
或者,如果是Perl,请使用((\w+)s)\b
并替换为\1 \2
(请参阅demo)。
请参阅demo