我只想匹配类似Python 的浮点数,例如:0.1.10..我编写了这个正则表达式:r"(\d+\.?\d*)|(\.\d+)",发现它也与"(.6"匹配,这并不是我想要的.我猜这与用括号分组有关,但我没有用反斜杠转义过任何括号.

我使用的是1.7.1版本的regex crate和1.67.0的Cargo.

use regex::Regex;
fn main() {
    let pattern = Regex::new(r"^(\d+\.?\d*)|(\.\d+)").unwrap();
    assert!(pattern.is_match("(.6"));
}

推荐答案

正则表达式^(\d+\.?\d*)|(\.\d+)^(\d+\.?\d*)(\.\d+)匹配.

您希望拥有^(\d+\.?\d*)|^(\.\d+)个或添加另一个组.^((\d+\.?\d*)|(\.\d+))

Rust相关问答推荐

重新导出proc宏导致未解决的extern crate错误""

为什么我的梅森素数代码的指数越大,速度就越快?

这是不是在不造成嵌套的情况下从枚举中取出想要的变体的惯用方法?

在我的Cargo 中,当我在建筑物中使用时,找不到我可以在产品包中使用的 crate .r我如何解决这个问题?

如何将映射反序列化为具有与键匹配的字段的定制 struct 的向量?

从未排序的链表中删除重复项的铁 rust 代码在ELSE分支的低级上做了什么?

Rust面向对象设计模式

要求类型参数有特定的大小?

如何在 Rust 中打印 let-else 语句中的错误?

为什么是&mut发送?线程如何在安全的 Rust 中捕获 &mut?

为什么不能在 Rust 中声明静态或常量 std::path::Path 对象?

在 Rust 中,Weak 如何知道内部值何时被删除?

是否可以在 Rust 中的特定字符上实现特征?

预期类型参数,发现不透明类型

Rustlings 切片原语

如何为返回正确类型的枚举实现 get 方法?

Rust - 在线程之间不安全地共享没有互斥量的可变数据

如何从 many0 传播 Nom 失败上下文?

你能用 Rust 和 winapi 制作 Windows 桌面应用程序吗?

为什么一个整型变量赋值给另一个变量后仍然可以使用?