Regex 对正则表达式中使用{1}感到困惑
在最近关于堆栈溢出的几个问题中,我看到了regex序列Regex 对正则表达式中使用{1}感到困惑,regex,Regex,在最近关于堆栈溢出的几个问题中,我看到了regex序列{1}。在我熟悉的正则表达式引擎中,重复计数1是完全多余的 是否有一个我不知道的正则表达式引擎,对于它来说这是不正确的 这个显式计数1是否是试图注释/强调前面的是元字符 我只是想了解这种做法的动机 链接:是最近的。。。寻找另一个…将{1}放在任何可重复的术语之后都没有任何效果 我可以理解{1}是否出现在使用一个项计数变量生成的正则表达式中,例如: String regex = "foo.{" + n + "}bar"; 匹配由n字符分隔的
{1}
。在我熟悉的正则表达式引擎中,重复计数1是完全多余的
是否有一个我不知道的正则表达式引擎,对于它来说这是不正确的
这个显式计数1是否是试图注释/强调前面的
是元字符
我只是想了解这种做法的动机
链接:是最近的。。。寻找另一个…将
{1}
放在任何可重复的术语之后都没有任何效果
我可以理解{1}
是否出现在使用一个项计数变量生成的正则表达式中,例如:
String regex = "foo.{" + n + "}bar";
匹配由
n
字符分隔的“foo”
和“bar”
。当n
恰好是1
时,您会得到“foo.{1}条”
它很可能是单点。我不知道有哪个正则表达式引擎的{1}
与
@Jongware不同,这是一个合理的解释…@Jongware:我想你的意思是“你可以把{1}
放在任何东西之后”,而不是之前。是否要删除并重新创建您的评论,以便对其进行投票?最好链接到答案中使用此选项的问题,而不是问题。写问题的人通常不知道他们在做什么,所以你不应该把他们的代码作为好的编码的例子。你可以把{1}
放在任何东西后面,不管是不是元字符。“在最近的几个问题中”暗示了神奇的思维和/或货物崇拜编程。有点像在任何事情之前添加反斜杠。(Magical Thinking=“它在别处起作用,所以它在这里也必须起作用”;Cargo Cult Programming=“我从一个工作示例中复制了这个片段”。)我可以告诉你,我过去确实做过类似的事情,我必须编写代码来获取某种专有格式的字符串,并将其转换为正则表达式。我将得到一个计数器,用于连续出现的次数,并将其转换为“{”+count+“}”
。当count==1
时,只需将其保留在其中就更容易了,因为正则表达式引擎正确地解析了它,并且它不需要修改我的代码。回答正确(+1),但我不确定它是否与我看到它的上下文相匹配。这确实是唯一有意义的上下文。对于{0}
,也可以这样说。它和前面的令牌是冗余的,但是构造允许生成的正则表达式工作,而不必处理条件和内容。