ruby 正则表达式 使用正负预查

例1:如果字符串New World后是Symphony 或 Dictionary 字符串New World将匹配, 但第三个单词不是匹配内容的一部分:
s1= "New World Dictionary"
s2= "New World Symphony"
s3= "New World Order"
reg=/New World (?=Dictionary|Symphony)/
m1=reg.match(s1)
m2=reg.match(s2)
m3=reg.match(s3)
p m1[0]
p m2[0]
p m3
"New World "
"New World "
nil
负预查示例:
s1= "New World Dictionary"  
s2= "New World Symphony"  
s3= "New World Order"  
reg2=/New World(?! Symphony)/
m1=reg2.match(s1)
m2=reg2.match(s2)
m3=reg2.match(s3)
m1.to_a
m2.to_a
m3.to_a
puts m1, m2, m3
New World
nil
New World
在上例中,仅当字符串New World 后面没有Symohony时才匹配

你可能感兴趣的:(正则表达式,职场,Ruby,休闲,正负预查)