首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模式匹配

模式匹配
EN

Stack Overflow用户
提问于 2011-06-28 16:31:03
回答 2查看 976关注 0票数 1

在我的数据库中,我有一个包含文件名模式的表。

数据库中的模式:

PKO??_??_??????_*.TXT

文件名:

代码语言:javascript
复制
PKO10_11_123456_example.TXT

现在,当一些文件被导入到我的程序中时,我需要将其与数据库中的这些模式进行匹配。我知道Directory.GetFiles()有一个添加模式的选项,它会返回与该模式匹配的所有文件。有没有办法在LINQ query中做到这一点?我尝试了Containes(),如下所示:

代码语言:javascript
复制
 var _cardType = (from type in context.OCA_CARD_TYPEs
     where type.FILENAME.ToLower().Contains(fileName.ToLower())
     select type).Single();

但就像这样,我没有得到任何匹配。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-28 16:36:13

代码语言:javascript
复制
where System.Data.Linq.SqlClient.SqlMethods.Like(
         type.FILENAME.ToUpper(), filename, '\\')

使用filename作为@"PKO__\___\_______\_%.TXT"

注意,代码是文字代码(通过我们指定的\字符进行转义)- _%是分别类似于?和< \_ >d12\>的代码通配符。

票数 2
EN

Stack Overflow用户

发布于 2011-06-28 16:35:05

我不认为?是Transact-SQL中的占位符。要匹配单个字符,请使用_。然后,您还需要转义下划线。我不知道L2S或L2E在这件事上是怎么表现的。

More

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

https://stackoverflow.com/questions/6503694

复制
相关文章

相似问题

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