我正在尝试使正则表达式字符串起作用,我已经玩了几天了,而且似乎撞到了可爱的赋壁。
我需要一种方法来阻止正则表达式在@username之后匹配
我的Regex字符串看起来像这样(app plex) ?(?:@(.*)|)
因此,假设输入为app plex @zycore look at this
,则输出为:
Match 1
Full match 0-16 `app plex @zycore`
Group 1. n/a `app plex`
Group 2. n/a `zycore look at this`
我想做的是拥有它,因此只有zycore位于组2中,而不是其后的文本,(@符号已删除,因为代码中不需要它,但运行它的应用程序中则需要它),它也只需使用app plex
作为输入。
我尝试了多种变体,但似乎没有任何效果,我正在使用regex101.com测试字符串。任何帮助,将不胜感激。
我尝试过
(app plex) ?(?:@(.*)|)
(app plex) ?(?:@(.*)|)[\s]
(app plex) ?(?:@(.*)[\s]|)
答案 0 :(得分:0)
您可以使用
(app plex) ?(?:@(\S*))?
请参见regex demo
详细信息
(app plex)
-第1组:app plex
子字符串 ?
-可选空格(?:@(\S*))?
-可选的非捕获组matchin 1或0次出现
@
-一个@
字符(\S*)
-第2组:0+个非空格字符。