如何为下面的字符串编写正则表达式,没有空格或多个空格的pre或post。
"any"
"any4"
"any6"
" any "
" any4 "
" any6 "
" any "
" any4 "
" any6 "
我尝试过"any[4,6]{0,1}$"
,但它只适用于前三个字符串。
发布于 2018-07-05 01:22:01
您可以尝试这个正则表达式
\"([a-zA-Z0-9]+)\"
发布于 2018-07-05 01:42:05
此作业不需要RegEx。你只需要
$string -like '*any*'
此外,它的速度更快。
发布于 2018-07-05 14:08:02
前3个只出现的原因是因为你在最后使用了一个$
。$
推断行尾是您输入的最后一个字符
所以
any[4-6]{0,1}$
将匹配
any4
任何
any6
any4
any6
任何
如果你想找到两端都有空格的文件,只需删除$
即可。
如果您试图根据特定的字符串来查找它,那么可以使用
^\s*any[4-6]{0,1}\s*$
请注意,正则表达式在某些系统上会有所不同,并且此代码可能在您的平台上不起作用,因为\s
可能不为人所知。
还请注意,实际的空格,即^ [4-6]{0,1} $
可能不会正确搜索,如果正确,它将只搜索空格,而不是空格、制表符等。
但是,如果你想包含确定的空格,你可以转义它们,即^\ [4-6]{0,1}\ $
。在某些系统中,例如Linux,命令中的空格会使它认为它是下一个变量/输入,并且不会理解[4-6]{0,1}
的含义
https://stackoverflow.com/questions/51176890
复制相似问题