微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

VB.NET与运算符混淆,模式小于签名

Dim rc As Boolean = "2" Like "*?<*?"

我不明白为什么rc等于True,肯定2不是*?< *?一点都不 上面的模式需要一个字符串
>至少三个字符(两个?和一个<)
>其中<符号是在内部的某个地方.
据我所知,<不是一个特殊字符,而不是<到Like运算符. 使用Visual Studio 2010.

解决方法

虽然我不能直接解释为什么2就像“*?< *?”. 您的查询读取;
> * – 匹配0个或更多字符
>? – 跟随一个单一角色
>< - 其次是<字符
> * – 后跟0个或更多字符
>? – 由一个单一字符终止

为了你想要的逻辑;

at least three characters before it matches,with “<” occurring
somewhere on the interior of the string

这导致查询;

Dim rc As Boolean = "2" Like "???*<*"

哪个读;

> ??? – 匹配至少3个字符
> * – 后跟任意数量的其他字符
>< - 其次是<字符
> * – 后跟任意数量的其他字符

我知道这不是一个直接的答案,但我希望它能帮助所有人……

编辑:

在下面回答你的评论.

你想要…吗;

find a string which has a “<” in it somewhere with at least one character on either side

这导致查询;

Dim rc As Boolean = "2" Like "*?<?*"

结果会返回False,就像那样;

Dim rc As Boolean = "<" Like "*?<?*"

然而;

Dim rc As Boolean = "2<2" Like "*?<?*"

会回来的.

我希望这会有所帮助(更多!)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐