在某一点后停止正则表达式字符串
Stoping a Regex String after a certain point
我正在尝试让正则表达式字符串正常工作,我已经玩了几天,似乎碰到了可爱的 fu 墙。
我需要一种方法来阻止正则表达式匹配@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`
我想要做的是让第 2 组中只有 zycore 而不是它后面的文本,(@ 符号被删除,因为它在代码中不需要但在应用程序中需要 运行 它),它还需要仅使用 app plex
作为输入。
我尝试了多种变体,但似乎没有任何效果,我正在使用 regex101.com 来测试字符串。任何帮助,将不胜感激。
我试过了
(app plex) ?(?:@(.*)|)
(app plex) ?(?:@(.*)|)[\s]
(app plex) ?(?:@(.*)[\s]|)
您可以使用
(app plex) ?(?:@(\S*))?
详情
(app plex)
- 第 1 组:app plex
子串
?
- 一个可选的 space
(?:@(\S*))?
- 可选的非捕获组匹配出现 1 次或 0 次
@
- 一个 @
字符
(\S*)
- 第 2 组:0+ 个非白色space 个字符。
我正在尝试让正则表达式字符串正常工作,我已经玩了几天,似乎碰到了可爱的 fu 墙。
我需要一种方法来阻止正则表达式匹配@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`
我想要做的是让第 2 组中只有 zycore 而不是它后面的文本,(@ 符号被删除,因为它在代码中不需要但在应用程序中需要 运行 它),它还需要仅使用 app plex
作为输入。
我尝试了多种变体,但似乎没有任何效果,我正在使用 regex101.com 来测试字符串。任何帮助,将不胜感激。
我试过了
(app plex) ?(?:@(.*)|)
(app plex) ?(?:@(.*)|)[\s]
(app plex) ?(?:@(.*)[\s]|)
您可以使用
(app plex) ?(?:@(\S*))?
详情
(app plex)
- 第 1 组:app plex
子串?
- 一个可选的 space(?:@(\S*))?
- 可选的非捕获组匹配出现 1 次或 0 次@
- 一个@
字符(\S*)
- 第 2 组:0+ 个非白色space 个字符。