首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBScript正则表达式

VBScript正则表达式
EN

Stack Overflow用户
提问于 2012-08-10 23:44:21
回答 3查看 9.8K关注 0票数 1

需要帮助构建一个VBScript正则表达式,该正则表达式检查有效的计算机名称,并且只返回无效字符。字符串只能包含数字、大小写字母和(-)符号。它不能以(-)开头或结尾,也不能仅仅是数字。

有效(不返回匹配):

电脑 Computer8 8计算机 Com8puter 科普特 电脑-123

无效(返回对无效字符的匹配):

123 -computer 电脑- com*计算机 PC&123

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-13 20:05:44

最后,我切换了有效的和无效的返回。我还使用了两个不同的RegEx字符串。第一个问题是:

代码语言:javascript
复制
 ^[0-9a-zA-Z]{1,}[-]*[0-9a-zA-Z]{1,}$

这不允许(-)在开头或结尾,并且需要所有的数字、字母或(-)。它还需要至少两个字符的字符串。

二是:

代码语言:javascript
复制
"[a-zA-Z]"

这确保至少包括一封信。

票数 2
EN

Stack Overflow用户

发布于 2012-08-11 02:55:27

根据这一点:http://msdn.microsoft.com/en-us/library/ms974570.aspx VBScript有它自己的正则语法味道。注意,NetBIOS计算机名的长度限制为15。

那么应该是“^w{0,14}$”。

RegEx满足除“全数字”之外的所有要求。这可以通过运行第二个regex "^\d+$“来实现。

代码:

代码语言:javascript
复制
Dim regexValid, regexNumber
Set regexValid = New RegExp
Set regexNumber = New RegExp

regexValid.Global = True
regexValid.IgnoreCase = True
regexNumber.Global = True
regexNumber.IgnoreCase = True

regexValid.Pattern = "^\w[\w\-]{0,14}$"
regexNumber.Pattern = "^\d+$"

Dim inputString
inputString = InputBox("Computer name?")

If regexValid.Test( inputString ) And Not regexNumber.Test( inputString ) Then
    ' It's a valid computer name string
Else
    ' It's invalid
End If

嗯,这是我今年写的第一个VBScript。

票数 2
EN

Stack Overflow用户

发布于 2012-08-11 02:43:09

像这样的/^([0-9]|[a-zA-Z]){1,}[a-zA-Z0-9-]+([0-9]|[a-zA-Z]){1,}$/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11910603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档