2015-02-09 226 views
1

的一部分,比方说,我有一个字符串s,我想“用"abcd" S” S,但只在第50个字符全部更换"123"GSUB只有在字符串

我知道可以做

s[0,50] = s[0,50].gsub("123", "abcd") 

但是,有没有办法直接去做就s

回答

3

看屁股,将有助于在这种情况下

正则表达式可以是这样的:

/(?<!.{50})123/ 
  • 负的外观后面。确保123不受50字符

Regex Demo

使用

string.gsub(/(?<!.{50})123/, "abc") 

测试

print "1234567890123".gsub(/(?<!.{10})123/, "abc") # I was bit lazy that I      
                # checked only for 10 characters 
=> abc456789
之前