加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

VB6和C#正则表达式

发布时间:2020-12-17 07:22:52 所属栏目:百科 来源:网络整理
导读:我需要将VB6(我不熟悉)项目转换为C#4.0.该项目包含一些字符串验证的正则表达式. 我需要知道两种情况下的正则表达式是否相同,所以如果我只是将正则表达式字符串从VB6项目复制到C#项目,它们的工作方式是否相同? 我对正则表达式有一个基本的了解,我可以简单地
我需要将VB6(我不熟悉)项目转换为C#4.0.该项目包含一些字符串验证的正则表达式.

我需要知道两种情况下的正则表达式是否相同,所以如果我只是将正则表达式字符串从VB6项目复制到C#项目,它们的工作方式是否相同?

我对正则表达式有一个基本的了解,我可以简单地阅读一下它的作用,但对于味道等,这一点在我的脑海中有点过头了.

例如,这两行是等价的吗?

VB6:

isStringValid = (str Like "*[!0-9A-Z]*")

C#:

isStringValid = Regex.IsMatch(str,"*[!0-9A-Z]*");

谢谢!

解决方法

尽管出现了旧的VB Like运算符,但它不是正则表达式接口.它更像是一个glob模式匹配器.见 http://msdn.microsoft.com/en-us/library/swf8kaxw.aspx

在你的例子中:

Like "*[!0-9A-Z]*"

匹配以任何字符(零个或多个)开头和结尾的字符串,然后与中间某处的字母数字字符不匹配.这个的正则表达式是:

/.*[^0-9A-Z].*/

编辑回答你的问题:不,这两个不能互换使用.但是,将Like的操作数转换为正确的正则表达式相当容易:

Like       RegEx
========== ==========
?          .
*          .*
#          d
[abc0-9]   [abc0-9]
[!abc0-9]  [^abc0-9]

对此有一些警告,但这应该让你开始并涵盖大多数情况.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读