将包含通配符的字符串转换为正则表达式
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*?
将匹配任何 字母数字字符或 _ 非贪婪。
我需要使用正则表达式转换包含通配符的字符串。
例如,如果我有如下输入字符串:
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*?
将匹配任何 字母数字字符或 _ 非贪婪。