我有一个包含xXXXX
和uXXXX
:的字符串
str = "nDefaultnRouterRandom=x9Dbu0012xD3,x92rxFC ou007Fx9B+u0005I`nWebInit=1n"
我想删除内容:
"RouterRandom=x9Dbu0012xD3,x92rxFC ou007Fx9B+u0005I`n"
如何匹配或删除字符串?我试过了:
content = str.sub(/RouterRandom=.*WebInit/, "")
它返回错误:
E:/Automation/experiment/ruby_test/string_test.rb:119:in `sub': invalid byte sequence in UTF-8 (ArgumentError)
from E:/Automation/experiment/ruby_test/string_test.rb:119:in `block in <top (required)>'
from E:/Automation/experiment/ruby_test/string_test.rb:110:in `open'
from E:/Automation/experiment/ruby_test/string_test.rb:110:in `<top (required)>'
from -e:1:in `load'
from -e:1:in `<main>'
由于字符串中的无效字符,您将获得invalid byte sequence
。您可以先替换字符串中的无效字符:
content = str.encode( 'UTF-8', invalid: :replace )
然后按换行符拆分:
content = content.split( "n" )
按索引删除数组中有问题的元素:
content.delete_at( 2 )
然后最后将数组重新连接到一个换行的字符串中:
new_str = content.join( "n" )
# => "nDefaultnWebInit=1"