将包含通配符的字符串转换为regexp
我需要用regexp转换包含通配符的字符串 例如,如果我有如下输入字符串: ab*dd*c 这意味着 ab(任意字符数)d(任意字符数)c 其中,将包含通配符的字符串转换为regexp,regex,pcregrep,Regex,Pcregrep,我需要用regexp转换包含通配符的字符串 例如,如果我有如下输入字符串: ab*dd*c 这意味着 ab(任意字符数)d(任意字符数)c 其中,任何字符是任何字母数字字符或“\u1” 我尝试过以下方法: 'ab([:alnum].'''.''''.''''.''''.'''.'''.'''.'''.'''.'''.'c' 但是,正如您所看到的,例如,([[:alnum]]\\\\'*也匹配d,因此,我无法获得所需的匹配 我想到的是使用如下内容: 'ab[^d]*dd[^c]*c' 还有更好的解
任何字符
是任何字母数字字符或“\u1”
我尝试过以下方法:
'ab([:alnum].'''.''''.''''.''''.'''.'''.'''.'''.'''.'''.'c'
但是,正如您所看到的,例如,([[:alnum]]\\\\'*
也匹配d
,因此,我无法获得所需的匹配
我想到的是使用如下内容:
'ab[^d]*dd[^c]*c'
还有更好的解决办法吗
提前谢谢 您可以使用此正则表达式:
/ab\w*?dd\w*?c/
\w*?
将匹配任何字母数字字符或非贪婪字符。是的,但我的问题不同。使用你的正则表达式,这个[\p{L}\uu]*
也将匹配dd
,我们将无法获得所需的匹配项。谢谢,@anubhava,它正在工作。我的意思是这个([:alnum]].''.'''.''.''.'.*
正则表达式的一部分与整个单词匹配,因此,dd
没有匹配。甚至可以这样写:[:alnum:][unum:][unum]*?
但是\w*?
较短。[:alnum:][u]*?
不起作用,但是\w*?
可以:)