【发布时间】:2014-01-02 08:26:07
【问题描述】:
在 Ruby 中,我编写了一个简单的正则表达式来查找第一个 {:
txt.gsub! /^.*{/, '{'
每当我运行此程序时,对于我的目的而言,超过该点的所有内容都可以正常工作,但是有一个轻微的错误,类似于 WARNING: Dangling metacharacter detected.尽可能高效?
【问题讨论】:
标签: ruby regex metacharacters
在 Ruby 中,我编写了一个简单的正则表达式来查找第一个 {:
txt.gsub! /^.*{/, '{'
每当我运行此程序时,对于我的目的而言,超过该点的所有内容都可以正常工作,但是有一个轻微的错误,类似于 WARNING: Dangling metacharacter detected.尽可能高效?
【问题讨论】:
标签: ruby regex metacharacters
{在正则表达式中有特殊含义。
PATTERN{m,n}
以上匹配PATTERN重复m~n次。
如果您想避免该警告(以匹配字面意思匹配 {),请转义它。
txt.gsub! /^.*\{/, '{'
更新
顺便说一句,/^.*{/ 没有捕捉到第一个 { 因为 .* 是贪婪匹配;它尽可能地消耗。
【讨论】:
{用作元字符时,它应该是PATTERN{m,n}的形式。例如:\d{2,3} 匹配 2 到 3 位数字。在/^.*{/ 中,没有数字,也没有右大括号。