我想知道是否有办法检查字符串是否包含正则表达式的特定模式。
例如:
var patch: UIView!
override func viewDidLoad() {
super.viewDidLoad()
patch = UIView(frame: CGRectMake(0, 0, view.bounds.width, 20))
patch.backgroundColor = UIColor.redColor()
self.view.addSubview(patch)
}
将检查字符串是否包含""的字符串。其后跟任何单个数字整数后跟" x"。但是让我们说如果我想检查相同的东西,但是对于那个int没有限制,即它可能是1000000.是否有像我可以使用的int的通配符?
答案 0 :(得分:4)
在你的角色类之后使用修饰符+
一次或多次匹配前一个令牌:
string.matches("something[0-9]+x")
答案 1 :(得分:1)
正则表达式适用于角色;他们对这些角色没有语义上的理解。所以谈论"整数"是不合理的。这里;你能做的最好的事情就是谈论"数字"。数字" 1"是一位数; " 1234"是四。
在正则表达式中,您可以使用" +"匹配前面一个或多个模式,因此正则表达式"something[0-9]+x"
应该按照您的意愿执行。如果你想要一个数字上限,你可以试试像"something[0-9]{1,5}x"
答案 2 :(得分:0)
是的,只需使用*,因此在您的示例 repl <- data.frame(x = c('e', 'c'), y = c(15,13))
df[match(repl$x,df$x),'y'] <-repl$y
> df
x y z
1 a 1 100
2 b 2 101
3 c 13 102
4 d 4 103
5 e 15 104
6 f 6 105
7 g 7 106
8 h 8 107
9 i 9 108
10 j 10 109
它会匹配一个字符串,后跟0到9之间的任何数字,必须至少出现一次,所以*表示零次或多次,而+表示它必须至少发生一次但可能发生更多次如果它想要的话。
如果你做[0-9] {n,m},你可以用m和n指定它可以在哪个范围内出现,例如:
string.matches("something[0-9]+x")
将匹配任何数字,并且必须发生2或3次,如果您只使用此bracs [0-9]{2,3}
中的一位数,则必须至少发生2次。
但最后:只是学会使用谷歌...有很多正则表达式网站提供教程和内容。