捕获组以及包含第一组模式的可选第二捕获组

时间:2019-05-01 22:11:32

标签: javascript regex google-apps-script

所以我正在尝试将正则表达式应用于javascript中的字符串。我只是无法获得正确的模式。

我基本上有一个多行字符串,该字符串包含一个名称,该名称的末尾有一个可选的数量。像这样的Warrior II x2。我想要一个捕获组作为名称,而一个则作为不带x的数量。因此,这应该捕获{Warrior II,2}

我尝试过:^(.+)(?:x(\d+))?$。问题是 .+将始终匹配所有内容,包括金额。第二捕获组将始终为空。而且,由于名称可以包含偶数和非ASCII内容,因此我无法真正将.+替换为\D+

所以问题是我如何强制正则表达式始终捕获第二组(如果存在)并且不将该部分包括在第一组中。我什至用.+尝试了惰性修饰符,但这也没有用。

我希望我的问题可以理解地描述。

我通过regex101.com测试了我的大部分正则表达式

0 个答案:

没有答案