请问vbs的正则表达式怎么表达出这个例子

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问vbs的正则表达式怎么表达出这个例子相关的知识,希望对你有一定的参考价值。

请问vbs的正则表达式怎么表达出这个例子:
8个字母,其中前4个和后4个依次对应相同,比如abcdabcd,efghefgh,...

Function RegExpfind(patrn, strng)
Dim regEx ' 建立变量。
Set regEx = New RegExp ' 建立正则表达式。
regEx.Pattern = patrn ' 设置模式。
regEx.IgnoreCase = True ' 设置是否区分大小写。
regEx.Global = True ' 设置全局可用性。
RegExpfind = regEx.Test(strng) ' 执行搜索测试。
End Function

wscript.echo RegExpfind("^([a-z]4)\1$","abcdabcd")

wscript.echo RegExpfind("^([a-z]4)\1$","abcdabcdx")

要是回答的内容有问题,或认为不妥,请发送百度消息给我,消息内容加上本页网址哦。。

·
参考技术A 看不懂 清楚点

vbs 正则表达式:仅匹配前 2 个下划线之间的文本

【中文标题】vbs 正则表达式:仅匹配前 2 个下划线之间的文本【英文标题】:vbs regex: match the text between ONLY the FIRST 2 underscores 【发布时间】:2011-05-25 17:40:44 【问题描述】:

如果文件名被调用,我正在使用 VBS 进行文件名抓取

hello_world_2012_is_not the end of the world.pdf

那么正则表达式应该匹配单词“world”并且没有别的

我试过这个:

[_][^_]+(?=_)

但它会获取两个下划线之间的所有内容。如何只选择第一个匹配项?

【问题讨论】:

你想知道文件名中是否包含“世界”这个词吗? 对不起...看到标题的答案 好点。不,我想提取它,所以它可以是任何东西……恐怕不像寻找“世界”那么容易。 【参考方案1】:

我建议使用以下正则表达式:

/^[^_]*_([^_]*)_/

解释:

^        # Anchor the search to the start of the string
[^_]*    # Match any number of non-underscores, don't capture them
_        # Match the first underscore
([^_]*)  # Match any number of non-underscores, do capture them
_        # Match the second underscore.

那么第一个捕获组 ($1) 将包含 world,并且正则表达式不会匹配字符串中的任何其他位置。

【讨论】:

太棒了!无需使用字符串操作符来提取下划线。非常感谢【参考方案2】:

正则表达式本身应该如下所示:

_([^_]*)_

字符串被捕获到组 1。

或者,使用字符串函数来定位前 2 个下划线,然后提取它们之间的内容。

【讨论】:

以上是关于请问vbs的正则表达式怎么表达出这个例子的主要内容,如果未能解决你的问题,请参考以下文章

js正则表达式:6-20位,可以为数字或者英文,最少一个英文。请问正则表达式怎么写

正则表达式高级替换,匹配后进行运算,然后使用结果替换,怎么实现?

vb正则表达式.

vbs 正则表达式:仅匹配前 2 个下划线之间的文本

请问JAVA中正则表达式匹配怎么实现的!

正则表达式匹配,匹配一段代码里的中文