在gsub表达式中使用负匹配是否可行?
我想替换以hello
开头的字符串,除了以hello Peter
开头的字符串。
my-string.gsub(/^hello@/i, '')
我应该用什么代替@
符号?
在gsub表达式中使用负匹配是否可行?
我想替换以hello
开头的字符串,除了以hello Peter
开头的字符串。
my-string.gsub(/^hello@/i, '')
我应该用什么代替@
符号?
>> "hello foo".gsub(/hello (?!peter)/, 'lala ') #=> "lala foo"
>> "hello peter".gsub(/hello (?!peter)/, 'lala ') #=> "hello peter"
正如Michael所说,你需要使用负向预查。
对于你的示例,类似于:
my_string.gsub(/^hello(?! peter)( .*|$)/i, '')
例如:
"hello"
"hello Mom"
"hello "
"hello Mom and Dad"
我会忽略这样的内容:
"hello Peter"
"hello peter"
"hellomom"
"hello peter and tom"