我正在解析日志文件中的字符串,格式通过以下方式之一:
[info] something written here
要么
[info] - something written here
在这两种情况下,我都需要返回:
something written here
-
是我正在解析的日志的可选添加项。
我希望有两个正则表达式在两种情况下得到相同的结果
我试过了:
line = "[info] - something written here"
line.gsub('[info] ',"")
结果如何
- something written here
我怎样才能摆脱可选的-
?
line1 = "[info] something written here"
line2 = "[info] - something else written here"
line1.gsub(/\[info\] (- )?/,"") #=> "something written here""
line2.gsub(/\[info\] (- )?/,"") #=> "something else written here"
gsub
,而不是String
。\[
和\]
以使用文字字符,而不是正则表达式字符集的括号。?
使捕获组成为可选的。您还可以考虑使模式更通用 - 例如说“任意数量的空格和连字符”:/\[info\][- ]*/