当前位置: 首页 > 知识库问答 >
问题:

什么是正则表达式中的悬空元字符?

翟元凯
2023-03-14

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

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

每当我运行这个程序时,出于我的目的,超过该点的所有操作都可以正常工作,但是有一个轻微的错误,它的内容是WARNING:Dangling metacharacter detected 悬空元字符具体是什么,我将如何更改我的正则表达式,使其尽可能显式和高效?


共有1个答案

谭鹏云
2023-03-14

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

PATTERN{m,n}

以上匹配模式重复m~n次。

如果你想避免这个警告(字面上的匹配{),就逃避它。

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

使现代化

顺便说一句,/^*{/无法捕获第一个{,因为*是贪婪匹配;它会消耗尽可能多的资源。

 类似资料:
  • 问题内容: 我正在尝试匹配\ ^ c形式的控制字符,其中c是控制字符的任何有效字符。我有这个正则表达式,但目前无法使用: 我认为问题在于,插入符号(^)是正则表达式解析引擎的一部分。 问题答案: 使用pattern 匹配形式的ASCII文本字符串,仅此而已。将形式的ASCII文本字符串与模式匹配。你不妨约束点缀到,所以。对于方括号字符类而言,它更容易阅读,因此对于原义BACKSLASH,其后是原义

  • 问题内容: 以下代码是众所周知的将重音符转换为纯文本的代码: 我用这种方法代替了“手工制作”方法,但是我需要了解replaceAll的“ regex”部分 1)什么是“ InCombiningDiacriticalMarks”? 2)它的文档在哪里?(和类似的?) 谢谢。 问题答案: 是Unicode块属性。在JDK7中,您将可以使用两部分表示法来编写它,这对于读者来说可能更清楚。它在UAX#44

  • 主要内容:实例下表包含了元字符的完整列表以及它们在正则表达式上下文中的行为: 字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。 ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或

  • 问题内容: 我在以下正则表达式中找到了它: 它将方括号(及其内容)与嵌套方括号匹配。 问题答案: 是一个字符类,表示除和以外的所有字符。 您可以避免转义和特殊字符,因为它对于PCRE(函数中使用的正则表达式引擎)不是模棱两可的。 由于在PCRE中不正确,因此正则表达式解析的唯一方法是在字符类内部,该字符类稍后将关闭。与以下相同。它不能重新打开字符类内的字符类(POSIX字符类除外)。然后最后一个清

  • 本文向大家介绍Java中的正则表达式“ $”(美元)元字符,包括了Java中的正则表达式“ $”(美元)元字符的使用技巧和注意事项,需要的朋友参考一下 子表达式/元字符“ $ ”与行尾匹配。 例子1 输出结果 例子2 以下Java程序从用户接受5个字符串,并打印以数字结尾的字符串。 输出结果

  • 本文向大家介绍正则表达式 ”。” (点)Java中的元字符,包括了正则表达式 ”。” (点)Java中的元字符的使用技巧和注意事项,需要的朋友参考一下 子表达式/元字符“。” 匹配除换行符以外的任何单个字符。 例1 输出结果 例子2 以下Java程序从用户接受5个字符串,并输出以e结尾的四个字母的单词。 输出结果