我试图使用Regex获取一个大字符串的子字符串。整个字符串有一定的文本“牛/”,然后任何数目的字符或空格都不是数字。第一个数字命中是我想要的子字符串的开始。这个需要的子字符串仅由数字和句点组成,第一个不是数字或句点的字符或空格表示所需子字符串的结尾。
例如:“牛/A12.34-123”
所需的子字符串为'12.34‘。
到目前为止,我有一个部分起作用的正则表达式。是不完全正确的):(?<=(A-z|0-9)/\s*).?(?=\s^0-9 \x{e76f})
提前谢谢。
发布于 2020-05-27 18:52:47
要做到这一点,就必须依靠捕获组:
cow/[^0-9]*([0-9.]+)这个组将包含您想要提取的文本,在Java group(index)中,在C#和Groups[index]中。其他语言也提供类似的功能。
不要试图解决正则表达式中的所有问题,而是要利用运行时的功能:)
对OP的评论后进行编辑:
Azure Kusto具有从正则表达式匹配中提取组的extract(regex, captureGroup, text [, typeLiteral])函数:
extract("cow/[^0-9]*([0-9.]+)", 1, "cow/ a12.34 -123") == "12.34";参数1告诉Kusto提取第一个捕获组(括号内的表达式)。
https://stackoverflow.com/questions/62050559
复制相似问题