有正则表达式匹配“aa”和“b-b”,但不是“a-b”?
这是一个很难表达的问题,但是有没有办法让正则表达式匹配'a-a'and 'b-b',但不是'a-b'?基本上我希望它与中间字符(例如“-”)两侧的相同字符匹配,但是该字符可以与一组字符(例如[abc])中的其他字符互换。我希望解决方案不是蛮力的,因为我想到的字符集非常大,答案应该在 javascript 中
回答
您正在寻找的模式是 /^([a-c])-1$/
您可以通过number语法引用任何捕获的组,其中number是您的组的编号,从 1 开始。
测试:
const pattern = /^([a-c])-1$/;
pattern.test('a-a'); // true
pattern.test('b-b'); // true
pattern.test('c-c'); // true
pattern.test('a-b'); // false