在正则表达式中使用的是一个通配符吗?

时间:2015-10-17 20:30:58

标签: java regex

我想知道是否有办法检查字符串是否包含正则表达式的特定模式。

例如:

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的通配符?

3 个答案:

答案 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次。

但最后:只是学会使用谷歌...有很多正则表达式网站提供教程和内容。