将包含通配符的字符串转换为正则表达式

Convert string containing wildcards to regexp

我需要使用正则表达式转换包含通配符的字符串。

例如,如果我有如下输入字符串:

ab*dd*c

这意味着

ab(any number of any characters)d(any number of any characters)c

其中 any character 是任何字母数字字符或“_”。

我已经尝试过类似下面的方法:

'ab([[:alnum]] | '_')*dd([[:alnum]] | '_')*c'

但是,如您所见,例如,([[:alnum]] | '\_')* 也匹配 d,因此,我无法获得所需的匹配项。

想到的是使用如下所示:

'ab[^ d]*dd[^ c]*c'

还有其他更好的解决方案吗?

提前致谢!

您可以使用这个正则表达式:

/ab\w*?dd\w*?c/

\w*? 将匹配任何 字母数字字符或 _ 非贪婪。