【发布时间】:2016-05-18 12:03:26
【问题描述】:
在报告中,我试图过滤值与十位数字和零个或多个连字符的模式不匹配的行。
由于我需要其他表中的数据,我认为最好的方法是使用 tablix 过滤器。在表达式中使用正则表达式匹配字段:^([\d]{10})-*$ 并将其设置为等于 false。
我正在尝试这种表达方式:
=System.Text.RegularExpressions.Regex.IsMatch(Fields!Number.Value, "^([\d]{10})-*$")
但是,它返回过滤器未能评估的错误。 任何想法如何解决它?
或者,我可以取剩下的 10 个字符并测试它们是否是整数,但是我想不出一种简单干净的方法来测试连字符,而是更喜欢正则表达式。
【问题讨论】:
-
试试
"^([0-9]{10})-*$" -
我做到了,它奏效了。令人惊讶的是,当我将
[0-9]改回[\d]时,它也起作用了。我在两者之间进行了重新启动,也许这是一个奇怪的缓存问题,我似乎更经常遇到这种问题。谢谢! -
@G684 您可以删除与您的 .rdl 文件在同一文件夹中创建的 .data 文件以清除缓存。
标签: regex ssrs-2008-r2