正则表达式与字符串的开头和结尾完全匹配,中间有通配符

RegEx Exactly Match Beginning and End of a String with a Wildcard in between

本文关键字:中间 通配符 字符串 开头 结尾 正则表达式      更新时间:2023-09-26

>我正在搜索以下格式的字符串:ABC-001

我会从用户文本输入字段构造一个正则表达式搜索,以便我可以搜索:

ABC* and match ABC-001, ABC-002, and so on...
ABC*2 and match ABC-002 but NOT ABC-012
ABC*12 and match ABC-012

我知道我需要做一些字符串操作才能从用户输入转到正则表达式,但作为一个例子,我像这样构造一个正则表达式:

^ABC.*2$

不幸的是,这符合ABC-002ABC-012

您可以在用户输入replace执行此操作:

var re = new RegExp(input.replace(/'*/g, '-0*'), "gi");

这会将ABC*2转换为/ABC-0*2/gi正则表达式,这将匹配ABC-002但不匹配ABC-012