gpt4 book ai didi

排除所有数字的正则表达式

转载 作者:行者123 更新时间:2023-12-05 02:19:06 27 4
gpt4 key购买 nike

您好,我正在尝试通过 VB.NET 中的正则表达式搜索文件中的所有匹配表达式我有这个功能:

Dim written As MatchCollection = Regex.Matches(ToTreat, "\bGlobalIndexImage = \'(?![0-9])([A-Za-z])\w+\'")
For Each writ As Match In written
For Each w As Capture In writ.Captures
MsgBox(w.Value.ToString)
Next
Next

我现在有了这个正则表达式:

\bGlobalIndexImage = \'(?![0-9])([A-Za-z])\w+\'

我正在尝试匹配此形式下的所有事件:

GlobalIndexImage = 'images'
GlobalIndexImage = 'Search'

但我也得到了我不想匹配的这样的值:

GlobalIndexImage = 'Z0003_S16G2'

所以我想在我的正则表达式中简单地排除包含数字的匹配项。

最佳答案

\w 速记字符类匹配字母 数字 _。如果您只需要字母,只需使用 [a-zA-Z]:

"\bGlobalIndexImage = '([A-Za-z]+)'"

参见 regex demo .

详细信息:

  • \b - 前导词边界
  • GlobalIndexImage = ' - 一串文字字符
  • ([A-Za-z]+) - 第 1 组捕获一个或多个(由于 + 量词)ASCII 字母
  • ' - 单引号。

enter image description here

如果您需要匹配任何 Unicode 字母,请将 [a-zA-Z] 替换为 \p{L}

VB.NET:

Dim text = "GlobalIndexImage = 'images' GlobalIndexImage = 'Search'"
Dim pattern As String = "\bGlobalIndexImage = '([A-Za-z]+)'"
Dim matches As List(Of String) = Regex.Matches(text, pattern) _
.Cast(Of Match)() _
.Select(Function(m) m.Groups(1).Value) _
.ToList()
Console.WriteLine(String.Join(vbLf, matches))

输出:

enter image description here

关于排除所有数字的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43582800/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com