我有一个正则表达式
'Tid [d]+ FAILED to get HPK lock.*tid = (?<tid>[d]+), caller|Failed to get HPK lock [w]+, owner's PID (?<tid>[d]+)'
在所有者的
上抛出解析错误我甚至尝试了双引号,并在Online YAML Parser中尝试过,但它抛出了一个错误
请帮我解决这个问题
如果您有一个实际的正则表达式:(为简洁而缩短)
re = /owner's PID (?<tid>[d]+)/
#=> /owner's PID (?<tid>[d]+)/
您可以通过source
:
re.source
#=> "owner's PID (?<tid>[\d]+)"
可以在YAML中使用:
require 'yaml'
yaml = { 'pattern' => re.source }.to_yaml
#=> "---npattern: owner's PID (?<tid>[\d]+)n"
puts yaml
输出:---
pattern: owner's PID (?<tid>[d]+)
解析:
hash = YAML.load(yaml)
#=> {"pattern"=>"owner's PID (?<tid>[\d]+)"}
正则表达式可以通过以下方式创建:
Regexp.new(hash['pattern'])
#=> /owner's PID (?<tid>[d]+)/
注意Regexp#source
不保留regexp的选项。您可能必须通过Regexp#options
单独存储它们。