在Ruby中,我写了一个简单的正则表达式来查找第一个{
:
txt.gsub! /^.*{/, '{'
每当我运行此项目时,为了我的目的而过去的所有内容都可以正常工作,但是有一个轻微的错误,它沿着WARNING: Dangling metacharacter detected.
的方向读取。具体是悬挂元字符,以及如何将我的正则表达式更改为尽可能明确有效?
答案 0 :(得分:3)
{
在正则表达式中具有特殊含义。
PATTERN{m,n}
以上匹配PATTERN重复m~n次。
如果你想避免那个警告(以匹配字面上的匹配{
),请逃避它。
txt.gsub! /^.*\{/, '{'
<强>更新强>
BTW,/^.*{/
没有抓住第一个{
,因为.*
是贪婪的匹配;它消耗尽可能多。