自:
14291@;@yfsun@;@some@string; .NET@;@200
要:
id=14291 name=yfsun msg=some@string; .NET code=200
我的正则表达式是:
/^(?<id>[^@]*)@;@(?<name>[^@]*)@;@(?<msg>[^@]*)@;@(?<code>[^@]*)$/
正如您所看到的,msg
部分会出现问题,因为msg
可能有@
字符串。
有什么想法吗?感谢
答案 0 :(得分:2)
答案 1 :(得分:1)
我不明白为什么一个简单的正则表达式不会这样做。我忽略了什么吗?
str = "14291@;@yfsun@;@some@string; .NET@;@200"
id, name, msg, code = str.split(/@;@/)
id = id.to_i #=> 14291
name #=> "yfsun"
msg #=> "some@string; .NET"
code = code.to_i #=> 200