如何将字符串与“xXXXX”和“uXXXX”匹配



我有一个包含xXXXXuXXXX:的字符串

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"

最新更新