gpt4 book ai didi

c# - 用于匹配短语中单个单词的正则表达式

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

我正在使用正则表达式执行站点搜索。如果我搜索这个:“Villas at Millwood”(这是一个社区名称)并且相应的社区名称是“Villas at Millwood”,我会得到结果。

如果我搜索“Millwood villas”,则不会显示任何结果。

我的意思是,该短语被视为一个整体,并进行了匹配。有什么方法可以匹配输入的短语中出现的单个单词吗?这样“millwood Villas”仍然会带来这样的结果“米尔伍德别墅”?

这是我必须匹配社区名称的内容:

Regex.IsMatch(MarketingCommunityName.Trim(), pattern, RegexOptions.IgnoreCase)

其中 pattern 是输入的搜索短语,MarketingCommunityName 是实际的社区名称。

提前致谢!

最佳答案

虽然我认为您应该在一个空格处拆分您的搜索模式,然后分别检查每个单词,但从您的搜索模式构造一个与顺序无关的正则表达式并不会太难:

var searchWords = searchString.Trim().Split(new Char[] {' '});

string pattern = @"^(?=.*" + String.Join(@")(?=.*", searchWords) + ")";

这构建了一个正则表达式,每个搜索词包含一个先行断言。每个先行断言都从字符串的开头开始,并查看搜索词是否出现在字符串内的任何位置。请注意,如果您的 searchString 包含正则表达式元字符,您可能会遇到问题,因此应该事先对这些元字符进行转义。

关于c# - 用于匹配短语中单个单词的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13167416/

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