当前位置: 首页 > 面试题库 >

正则表达式:?:表示法(问号和冒号表示法)

丁慈
2023-03-14
问题内容

我有以下Java正则表达式,我没有编写,并且正试图修改

^class-map(?:(\\s+match-all)|(\\s+match-any))?(\\s+[\\x21-\\x7e]{1,40})$
           ^                                 ^

与此相似。

请注意第一个问号。这是否意味着该组是可选的?对应的后面已经有一个问号)。冒号在正则表达式中有特殊含义吗?

regex可以很好地编译,并且已经有JUnit测试显示它如何工作。只是我对为什么第一个问号和冒号存在感到有些困惑。


问题答案:

(?:启动一个非捕获组。(除非您在使用后从正则表达式中检索组,否则没有什么不同。请参阅什么是非捕获组?问号后跟冒号(?:)是什么意思?。



 类似资料:
  • 我不熟悉Javascript和正则表达式,所以我一直在研究如何使路由匹配所有以

  • 主要内容:简单表达式,字符匹配,实例,实例,匹配 HTML 标签及内容,实例,中括号表达式,替换和分组,其他示例,更多实例简单表达式 正则表达式的最简单形式是在搜索字符串中匹配其本身的单个普通字符。例如,单字符模式,如 A,不论出现在搜索字符串中的何处,它总是匹配字母 A。下面是一些单字符正则表达式模式的示例: 可以将许多单字符组合起来以形成大的表达式。例如,以下正则表达式组合了单字符表达式:a、7 和 M。 请注意,没有串联运算符。只须在一个字符后面键入另一个字符。 字符匹配 点号 . 匹配字

  • 问题内容: 我需要使用正则表达式,检查一个字符串以a开头 的双引号 字符(),用两端 的双引号 字符了。 问题是我不能使用 双引号 字符,导致混淆。还有其他方法可以在正则表达式中或一般在字符串中表示 双引号 字符吗? 问题答案: 首先,双引号字符在regex中没什么特别的-它只是另一个字符,因此 从regex的角度来看 不需要转义。 但是,由于Java使用双引号 分隔 字符串常量,因此,如果要在J

  • 问题内容: 我有这样的字符串 我想用冒号作为分隔符,而不是双冒号。所需结果: 我正在尝试: 但我得到了错误的结果。 在此期间,我逃避,用 问题答案: 您可以继续讨论。这使用两个否定的环视(回溯和回溯),它们断言有效匹配只有一个冒号,在它之前或之后没有冒号。 解释模式: 这两种环视都是必需的,因为如果只有后向,则正则表达式引擎将匹配其中的第一个冒号(因为前一个字符不是冒号),如果只有前瞻,则第二个冒

  • 我正在尝试匹配格式为[integer][colon][alphanum][colon][integer]的字符串。例如42100:ZBA01:20。我要用冒号来分... 我想学习正则表达式,所以如果可以的话,告诉我我做错了什么:这是我能想出的... 一开始我试着匹配字符串的部分,这些部分匹配整个字符串。您可以看出,我对正则表达式不是很熟悉。 编辑:正则表达式用于输入桌面应用程序。我不确定使用什么“

  • 我有一个非常好的正则表达式,它从文本中选择引用: 但是我需要一个正则表达式,它从没有引号的文本中选择引号。 例如,我有: 鲸鱼包括八个现存的家族:“鲸豚科”(白鲸),“鲸豚科”(露脊鲸),“鲸豚科”(侏儒露脊鲸),“白鲸科”(灰鲸),“独角鲸科”(白鲸和独角鲸),“抹香鲸科”(抹香鲸)。。。 我需要在引号之间提取文本: 龟甲翅目,龟甲翅目,龟甲翅目,... 要提取括号之间的文本,我使用正则表达式: