首页 > 解决方案 > 如何根据 U-SQL 中的正则表达式提取子字符串?

问题描述

我正在尝试根据 U-SQL 中的正则表达式提取一些子字符串。但我找不到这样做的内置函数。也许还有更简单的方法来解决我的问题。我有“1.10.12 ABC”或“10.1”或“10.1.10”之类的版本代码,并希望以我只得到前两个数字的方式标准化它们。所以就像"^\d+\.\d+"在正则表达式中一样。

有没有办法在 U-SQL 中获得该结果?

@someData =
SELECT * FROM
    ( VALUES
    ("1.1.10 ABC"),
    ("1.10.1"),
    ("15.3.2")
    ) AS T(version);

我想要以下格式的版本:

"1.1"
"1.10"
"15.3"

标签: u-sql

解决方案


您可以尝试以下方法:

@someData =
SELECT * FROM
    ( VALUES
    (Regex.Replace("1.1.10 ABC", "^\d+\.\d+"),
    (Regex.Replace("1.10.1", "^\d+\.\d+"),
    (Regex.Replace("15.3.2", "^\d+\.\d+")
    ) AS T(version);

推荐阅读