ruby - 正则表达式中的悬挂元字符是什么?

标签 ruby regex metacharacters

在 Ruby 中,我编写了一个简单的正则表达式来查找第一个 {:

txt.gsub! /^.*{/, '{'

每当我运行此命令时,超出该点的所有内容都可以正常工作,但是会出现一个轻微错误,类似于警告:检测到悬挂元字符。具体是什么悬挂元字符,以及我如何将我的正则表达式更改为尽可能明确和高效?

最佳答案

{ 在正则表达式中具有特殊含义。

PATTERN{m,n}

以上匹配 PATTERN 重复 m~n 次。

如果您想避免该警告(以字面匹配{),请转义它。

txt.gsub! /^.*\{/, '{'

更新

顺便说一句,/^.*{/ 没有捕获第一个 {,因为 .* 是贪婪匹配;它消耗尽可能多的能量。

关于ruby - 正则表达式中的悬挂元字符是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20585639/

相关文章:

python - 正则表达式 - 用大写字母替换每个匹配项

linux - 将任意字符串(从标准输入或文件)读入 bash 并在不进行任何 shell 扩展的情况下使用它

ruby - 如何为字母、元音和辅音等德语字符类编写正则表达式?

ruby - 处理接近无穷大的数字(大和小)

ruby-on-rails - Rails 运行程序出现段错误 (Rails 4.0.0 Ruby 2.2.2p95 CentOS7)

Javascript - 获取输入文本值但忽略一些单词

java - 在 Java .replaceAll 方法中转义一长串元字符

ruby 哈希 : can't convert String into Integer TypeError

ruby-on-rails - 将变量传递到 block 中 - Rails

php - 提取数据 PHP 字符串