【问题标题】:SSRS Function with Regex Match带有正则表达式匹配的 SSRS 函数
【发布时间】: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


【解决方案1】:

重新启动后表达式可以正常工作:

=System.Text.RegularExpressions.Regex.IsMatch(Fields!Number.Value, "^([\d]{10})-*$")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-11
    • 1970-01-01
    • 1970-01-01
    • 2017-08-16
    • 2011-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多