gpt4 book ai didi

c# - 正则表达式匹配部分或整个单词

转载 作者:太空宇宙 更新时间:2023-11-03 21:13:34 24 4
gpt4 key购买 nike

我正在尝试找出一个正则表达式,它可以匹配整个单词或单词的一部分(预定义的长度,例如前 4 个字符)。

例如,如果我尝试匹配单词 between 并且我的偏移量设置为 4,则

between betwee betwe betw

是匹配,但不是

bet betweenx bet12 betw123 beta

我在 regex101 中创建了一个示例,我正在尝试(没有运气)积极前瞻 (?=) 和非单词边界 \B 的组合。

我找到了一个类似的 question在其接受的 answer 中提出了一个词. 据我所知,它以某种方式覆盖匹配器,根据单词和偏移量运行所有可能的正则表达式。

我的代码必须用 C# 编写,所以我正在尝试转换上述代码。 如我所见,Regex.Replace(我假设 Regex.Match 也)可以接受委托(delegate)来覆盖默认功能,但我不能它有效。

最佳答案

您可以使用前 4 个字符,并将其余字符设为可选。
然后将它们包裹在单词边界和括号中。

所以在“介于”的情况下,它将是

@"\b(betw)(?:(e|ee|een)?)\b"

实现该目标的代码是:

public string createRegex(string word, int count)
{
var mandatory = word.Substring(0, count);
var optional = "(" + String.Join("|", Enumerable.Range(1, count - 1).Select(i => word.Substring(count, i))) + ")?";
var regex = @"\b(" + mandatory + ")(?:" + optional + @")\b";
return regex;
}

关于c# - 正则表达式匹配部分或整个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36039306/

24 4 0
文章推荐: c# - 将 IEnumerable 保存到数据库中
文章推荐: jquery -
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com