所以我正在尝试将正则表达式应用于javascript中的字符串。我只是无法获得正确的模式。
我基本上有一个多行字符串,该字符串包含一个名称,该名称的末尾有一个可选的数量。像这样的Warrior II x2
。我想要一个捕获组作为名称,而一个则作为不带x的数量。因此,这应该捕获{Warrior II,2}
我尝试过:^(.+)(?:x(\d+))?$
。问题是
.+
将始终匹配所有内容,包括金额。第二捕获组将始终为空。而且,由于名称可以包含偶数和非ASCII内容,因此我无法真正将.+
替换为\D+
所以问题是我如何强制正则表达式始终捕获第二组(如果存在)并且不将该部分包括在第一组中。我什至用.+
尝试了惰性修饰符,但这也没有用。
我希望我的问题可以理解地描述。
我通过regex101.com测试了我的大部分正则表达式