Please help! I've searched and tried for hours with no success :(
(?!.*%[^s]).*
: will match any thing and only %s
but
(?!.*%\.[^0-9]f).*
: will not match things and %.3f
It's for me somehow not easy to combine them together.
Please help! I've searched and tried for hours with no success :(
(?!.*%[^s]).*
: will match any thing and only %s
but
(?!.*%\.[^0-9]f).*
: will not match things and %.3f
It's for me somehow not easy to combine them together.
要求还不是很清楚,但也许
(%s|%\.[0-9]+f|[^%])*
如果 % 后跟 s 或 .<digits>f,则此表达式将匹配它。否则它只匹配不是 % 的字符,因此如果 % 后面没有跟其中之一,它将被拒绝。这个正则表达式必须与整个输入相匹配,所以要么使用matches
方法,要么用andMatcher
包围上面的方法。这允许任意数量的或在字符串中。如果这是错误的,那么上述将不起作用。^
$
%s
%.[0-9]+f
编辑:如果只允许一个数字.
,f
然后+
从上面删除。
使用双重否定!
(?!.*%(?!s|\.[0-9]+f)).*
%
因此,如果后面是s
或有效的浮点表达式(如%.3f
),嵌套的负前瞻将导致外部负前瞻失败。
您可能希望在此处添加字符串锚点的开头,以确保您不会获得部分匹配。