首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex:抓取在某个字符串之后开始的字符串,当它碰到任何其他字符时结束。

Regex:抓取在某个字符串之后开始的字符串,当它碰到任何其他字符时结束。
EN

Stack Overflow用户
提问于 2020-05-27 18:42:34
回答 1查看 1.1K关注 0票数 0

我试图使用Regex获取一个大字符串的子字符串。整个字符串有一定的文本“牛/”,然后任何数目的字符或空格都不是数字。第一个数字命中是我想要的子字符串的开始。这个需要的子字符串仅由数字和句点组成,第一个不是数字或句点的字符或空格表示所需子字符串的结尾。

例如:“牛/A12.34-123”

所需的子字符串为'12.34‘。

到目前为止,我有一个部分起作用的正则表达式。是不完全正确的):(?<=(A-z|0-9)/\s*).?(?=\s^0-9 \x{e76f})

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-05-27 18:52:47

要做到这一点,就必须依靠捕获组:

代码语言:javascript
复制
cow/[^0-9]*([0-9.]+)

这个组将包含您想要提取的文本,在Java group(index)中,在C#和Groups[index]中。其他语言也提供类似的功能。

不要试图解决正则表达式中的所有问题,而是要利用运行时的功能:)

对OP的评论后进行编辑:

Azure Kusto具有从正则表达式匹配中提取组的extract(regex, captureGroup, text [, typeLiteral])函数:

代码语言:javascript
复制
extract("cow/[^0-9]*([0-9.]+)", 1, "cow/ a12.34 -123") == "12.34";

参数1告诉Kusto提取第一个捕获组(括号内的表达式)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62050559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档