相关疑难解决方法(0)

参考 - 这个正则表达式意味着什么?

这是什么?

这是常见问答的集合.这也是社区Wiki,因此每个人都被邀请参与维护.

为什么是这样?

患的是给我泽码型的问题和答案不佳,没有解释.此参考旨在提供质量问答的链接.

范围是什么?

此引用适用于以下语言:,,,,,,.

这可能过于宽泛,但这些语言共享相同的语法.对于特定功能,它背后的语言标签,例如:

  • 什么是正则表达式平衡组?

regex

52
推荐指数
1
解决办法
11万
查看次数

如何强制两个模式捕获到正则表达式中的同一组

我必须解析一个字符串,格式为!info1!info2!,并且info2是可选的。

我正在尝试使用正则表达式来捕获,info1如果info2需要的话。

我想出了以下模式:

!([^!]*?)!(.*?)!|!(.*?)! 
Run Code Online (Sandbox Code Playgroud)

它有效,但我对结果不满意:

!foo!bar! -> Group1: foo Group2:bar
!foo!     -> Group3: foo
(https://regex101.com/r/D9d6YP/1)
Run Code Online (Sandbox Code Playgroud)

在这两种表达方式中,foo表示相同的事物,并且随后以相同的方式进行处理。我想将它捕获在同一组中,无论是否有第二组。

我尝试过使用命名捕获组,但似乎它们无法重复使用

!(?<info1>[^!]*?)!(?<info2>.*?)!|!(?<info1>.*?)!
Run Code Online (Sandbox Code Playgroud)

失败并显示错误消息“子模式名称必须是唯一的”。

有什么办法可以捕获同一组中的不同模式吗?

.net regex regex-group

6
推荐指数
1
解决办法
3110
查看次数

标签 统计

regex ×2

.net ×1

regex-group ×1