正则表达式 OR 结果产生两个单独的组,如何将其捕获为单个组?

问题描述 投票:0回答:1

我正在尝试在 GoLang 正则表达式中捕获以下输入字符串的用户名,我希望

An anonymous user
User prettygurl91
位于单个组中,但以下模式并非如此。

输入:

[Twitter] An anonymous user has posted a photo on 03-24-2024!
[Twitter] User prettygurl91 has posted a video on 03-25-2024!

图案:

^\[Twitter\] (?:User (.*?)|An (anonymous) user) has posted a (.*) on (.*)\!

结果组:

[Twitter] An anonymous user has posted a photo on 03-24-2024!

的结果组
  1. 匿名
  2. 照片
  3. 2024年3月24日

[Twitter] User prettygurl91 has posted a video on 03-25-2024!

的结果组
  1. 漂亮gurl91
  2. 视频
  3. 2024年3月25日

期望的是以下输入字符串像这样分组

  1. prettygurl91 / 匿名
  2. 照片/视频
  3. 2024年3月24日 / 2024年3月25日
regex go regex-lookarounds regex-group regex-negation
1个回答
0
投票

您启用了多个捕获组,但它们似乎没有任何作用。并且您想要使用的一个捕获组已被关闭。试试这个版本:

^\[Twitter\] (User \w+|An Anonymous user) has posted a .* on .*!
© www.soinside.com 2019 - 2024. All rights reserved.