我可以在USQL中使用正则表达式吗? [英] Can I use Regular Expressions in USQL?

查看:65
本文介绍了我可以在USQL中使用正则表达式吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以在USQL中编写正则表达式比较?

Is it possible to write regular expression comparisons in USQL?

例如,我不是使用多个"LIKE"语句来搜索各种食品的名称,而是要使用单个Regex表达式对多个食品进行比较.

For example, rather than multiple "LIKE" statements to search for the name of various food items, I want to perform a comparison of multiple items using a single Regex expression.

推荐答案

您可以内联创建一个新的Regex对象,然后使用IsMatch()方法.

You can create a new Regex object inline and then use the IsMatch() method.

如果Offer_Desc列中包含单词培根",牛角包"或帕尼尼",则下面的示例返回"Y".

The example below returns "Y" if the Offer_Desc column contains the word "bacon", "croissant", or "panini".

@output =
SELECT 
    , CSHARP(new Regex("\\b(BACON|CROISSANT|PANINI)S?\\b"
             )).IsMatch(wrk.Offer_Desc.ToUpper())
      ? "Y"
      : "N" AS Is_Food
FROM ... AS wrk

注意:

  • CSHARP()块是可选的,但是您确实需要通过将它们加倍来对正则表达式中的任何反斜杠进行转义(如上例所示).
  • regex示例将这些作为单个单词接受,可以是单数形式也可以是复数形式("paninis"可以,但"baconator"则不能).

这篇关于我可以在USQL中使用正则表达式吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆