regex 正则表达式中逗号的解释

j5fpnvbx  于 2023-06-25  发布在  其他
关注(0)|答案(1)|浏览(125)

我想知道逗号在正则表达式中是如何解释的。我在网上做了一些研究,希望验证我的理解,如以下片段所解释的:-

{a,b}*  can mean {a+b}* and matches a,aa,b,bb,ab,abbb,aaab,ababab etc
similarly, {a,aba} would match either a or aba

还是有其他的解释

olmpazwi

olmpazwi1#

你的问题似乎涉及到 * 形式语言理论 * 中的正则表达式。在计算机编程中,我们使用regex作为正则表达式语法和语法的一个非常特殊的实现,它发展到包括不属于正则表达式理论概念的操作(参见。regular-language)。
维基百科注解:
短语 regular expressionsregexes 通常用于表示用于表示匹配文本的模式的特定标准文本语法,与数学符号不同。
纯正则表达式只有三个操作符:

  • 串联
  • 交替
  • Kleene闭包

用于这些运算符的语法可以不同。例如,以下所有内容的含义相同,但语法规则不同:

  • (a+b)c*
  • (a|b)c*
  • {a,b}c*

就我个人而言,我认为大括号是一个糟糕的选择,因为它们用于表示正则语言的 * 字母表 *,即。在regex中,它们被使用as a quantifier来限制前面的模式可以重复多少次。
至于你的具体问题:
逗号的解释
它是 alternation 运算符。在形式语言的讨论中,这个运算符通常使用+,而在计算机语言中,这个运算符通常使用符号|

相关问题