- ceres之LM算法
xiechaoyi123
优化算法算法
Ceres作为一个优化算法库,在许多领域中有着至关重要的作用,比如slam系统中的优化问题-集束调整BA,就可以通过Ceres去实现,官方文档地址:http://ceres-solver.org/nnls_tutorial.html#bundle-adjustment本文主要是解析ceres中的LM算法过程,参考代码地址:https://github.com/ceres-solver/ceres-
- 视觉SLAM十四讲学习笔记——第六讲 非线性优化(2)
晒月光12138
视觉SLAM十四讲学习笔记机器学习slam
这一节主要回顾一下Ceres、g20的使用。1.Ceres、G2o源码安装方法高博士的书中都有各个库的安装方法,但由于版本变化,个别安装方法可能并不适用。这里简单整理一下两个库的源码安装方法,其他的库之后有时间统一整理一下。(1)Ceres安装下载源码,下载地址:https://github.com/ceres-solver/ceres-solver安装依赖项:sudoapt-getinstall
- Ubuntu18.04快速安装Cartographer以及Cartographer_ros
火种源码
算法ubuntu
任务动机:快速完成基于Ubuntu18.04的Cartographer以及Cartographer_ros安装。任务描述:分步安装验证后,将步骤合并成安装脚本。Cartographer由谷歌一直在维护,从之前的tf1到现在melodic版本上的tf2_ros都有更新支持。而且cartographer所依赖的库也在一直更新,包括abseil-cpp,ceres-solver,protobuf等,其依
- 【Ubuntu18.04】激光雷达与相机联合标定(Livox+HIKROBOT)(一)
摇曳的树
ubuntu笔记数码相机
Livox+HIKROBOT联合标定引言1海康机器人HIKROBOTSDK二次开发并封装ROS1.1介绍1.2安装MVSSDK1.3封装ROSpackge2览沃LivoxSDK二次开发并封装ROS3相机雷达联合标定3.1环境配置3.1.1安装依赖——PCL安装3.1.2安装依赖——Eigen安装3.1.3安装依赖——Ceres-solver安装3.1.4下载源码,编译准备3.1.5程序节点概括3.
- Ubuntu 20.04 Docker 中运行测试VINS-Fusion、VINS-mono、GVINS,以及VINS-Fusion+gps全局估计精度评估方法(EVO)
Jiangbo Song
docker容器运维
安装Docker安装以及简易教程:Docker零基础从入门到精通(全)_docker教程_码农研究僧的博客-CSDN博客docker下编译运行按照说明下载源码、在docker文件中开始编译,需要注意dockerfile中的ceres的下载地址会报错,改成github的下载地址gitclonehttps://github.com/ceres-solver/ceres-solver.git配置文件中修
- 电子地图 | VINS-FUSION | 小觅相机D系列
居安_
SLAMslamVINS-FUSION小觅相机电子地图构建
目录一、相关介绍二、VINS-FUSION环境安装及使用(一)Ubuntu18.04安装配置1、Ubuntu下载安装2、设置虚拟内存(可选)(二)VINS-FUSION环境配置1、ros安装2、ceres-solver安装3、vins-fusion编译安装(可选,针对不接入小觅相机,仅想运行已有数据集)(二)VINS-FUSION运行官方数据集1、下载数据集2、运行双目3、运行单目+IMU4、运行
- TEB (Timed Elastic Band)
gxt_kt
teb路径规划
TEB(TimedElasticBand)源码:https://github.com/gxt-kt/teb_local_planner移植了官方的teb源码,实现了普通优化和多路径优化。移植参考ros源码。无需ros框架即可运行,并使用opencv进行显示。并用google的ceres-solver替换g2o进行单路径优化。主要用来解决局部路径规划问题,和DWA属于同一级别使用到了Ceres/g2
- Ceres库安装
X_simple
算法c++数据结构
一、安装依赖sudoapt-getinstallliblapack-devlibsuitesparse-devlibcxsparse3libgflags-devlibgoogle-glog-devlibgtest-dev二、克隆Ceres包gitclonehttps://github.com/ceres-solver/ceres-solver.git三、编译安装进入ceres-solver目录下,
- 【SLAM】A-LOAM 算法部署与测试(Win10 + VMWare + Ubuntu18.04)
nemo_0410
SLAMSLAMROSubuntu
基础环境ubuntu及ROS安装,略;安装完ROS以后,默认已经安装好了PCL和Eigen库;安装Ceres下载Ceres源文件:(Vmware没有网络,到下面的网址手动下载安装包)-https://github.com/ceres-solver/ceres-solver/releases/tag/1.14.0安装Ceres依赖:sudoaptinstalllibsuitesparse-devli
- CMake多文件编译
hex_refugeeeee
ubuntucmakec++开发语言
之前学习ceres-solver中的3d相关的源码的时候,发现对于CMake多文件工程编译中对于CMakeLists.txt的编写和处理的理解运用还是比较模糊,这里整理梳理一下对于不同文件夹数量如何使用。参考文章:CMake使用详解二(多文件编译)_刘凯数据分析的博客-CSDN博客_cmake多文件编译1.同一文件夹下,多cpp文件tree如下所示:.└──test1├──add.cpp├──ad
- ubuntu18.04安装ceres时,报错CMake Error at cmake/FindGlog.cmake:350+解决方案
山也相爱
ubuntu视觉检测
1.下载ceresgitclonehttps://github.com/ceres-solver/ceres-solver2.安装依赖项sudoapt-getinstallliblapack-devlibsuitesparse-devlibcxsparse3libgflags-devlibgoogle-glog-devlibgtest-dev注意一点,对于libcxsparse这个库,不同系统对应
- 【环境】ceres库在ubantu的qt上配置
weixin_50862344
qt开发语言
一直没找到比较好的解决静态库的问题,最后还是投降使用了动态库,记录一下!1.版本信息安装的是1.4,够用而且不会出现2.1版本的奇怪问题2.安装教程wget-chttps://github.com/ceres-solver/ceres-solver/archive/refs/tags/1.14.0.zipunzip1.14.0.zip进入到对应文件夹的路径下cmake..-DBUILD_SHARE
- 安装ceres-solver
xiaozhiwise
Linuxlinux
/**2023/6/810:11*/#安装ceres-solver#开源C++库,用于建模和解决大型、复杂的优化问题。#它可用于解决具有边界约束的非线性最小二乘问题和一般无约束优化问题。#是谷歌开发的一款用于非线性优化的库,在谷歌的开源激光雷达slam项目cartographer中被大量使用。http://ceres-solver.org/ceres-solver-1.14.0.tar.gz#新版
- slambook2+ubuntu20.04(第六章-第八章)
对不起,我还只是小孩
slam学习分享ubuntulinuxc++
第六章ceres环境配置下载地址:gitclonehttps://github.com/ceres-solver/ceres-solver安装附加库前需要安装依赖项,依赖项会报错。解决://第一步,打开sources.listsudogedit/etc/apt/sources.list//第二步,将下面的源粘贴到最上方sources.listdebhttp://cz.archive.ubuntu.
- 点云算法对比ICP、NDT,LM,Ceres-Solver,KDTree,SVM和ComplexYOLO、CenterPoint、PNP
SensorFusion
点云模型训练dockerpytorchubuntu
1:ICPICP(IterativeClosestPoint),即最近点迭代算法,是最为经典的数据配准算法。其特征在于,通过求取源点云和目标点云之间的对应点对,基于对应点对构造旋转平移矩阵,并利用所求矩阵,将源点云变换到目标点云的坐标系下,估计变换后源点云与目标点云的误差函数,若误差函数值大于阀值,则迭代进行上述运算直到满足给定的误差要求.ICP算法采用最小二乘估计计算变换矩阵,原理简单且具有较好
- ceres快速教材及学习笔记(四)bundl adjustment,《视觉slam十四讲》第十讲ceres例子
元宇宙MetaAI
SLAM
0.前言本文是根据ceres官方教程内容ceres-solver官方教程链接,再结合自己理解的一个ceres快速学习笔记。在博文ceres快速教材及学习笔记(一)hello,world!中,我们学习了最小二乘问题数学模型;弄清楚了各个参数的意义;利用学习的最小二乘问题数学模型和ceres解决了一个最简单的最小二乘问题;在博文ceres快速教材及学习笔记(二)曲线拟合,稍复杂的例子中,我们学会了怎样
- fast-lio2复现:使用livox_avia
CCChester
git
安装依赖以及ceressudoapt-getinstalllibsuitesparse-devgitclonehttps://github.com/ceres-solver/ceres-solver/archive/1.14.0.zipcd~/你新建的文件夹/ceres-solver-1.14.0mkdirceres-bin&&cdceres-bincmake…sudomakeinstall-j4
- Ceres Solver:Terminating: Residual and Jacobian evaluation failed
Fshinech
非线性优化高精定位C++c++最小二乘法
文章目录前言一、Ceres-Solver二、解决方法总结前言使用ceres-solver库求解非线性优化问题时,打印summary.message时出现报错:[trust_region_minimizer.cc:72]Terminating:ResidualandJacobianevaluationfailed.解决方法如下:一、Ceres-Solverceres-solver是一款开源库,用于解
- 非线性优化库Ceres安装
buddyhs
安装非线性优化库Ceres1下载源码下载地址https://github.com/ceres-solver/ceres-solvergithub地址2安装依赖项sudoapt-getinstallliblapack-devlibsuitesparse-devlibcxsparse3.1.4libgflags-devlibgoogle-glog-dev3安装Cerestarzxfceres-solv
- Ubuntu查看OpenCV,Eigen,Ceres等库的版本
马克西姆0
opencv
查看OpenCV版本pkg-config--modversionopencv查看Eigen版本vim/usr/include/eigen3/Eigen/src/Core/util/Macros.h查看Ceres版本打开home下安装ceres-solver的文件夹,然后打开ceres-solver的package.xml文件,在里面可以看到版本号
- Ubuntu20.04运行ALOAM程序
weixin_45804369
激光SLAM自动驾驶ubuntuc++
学习目标:Ubuntu20.04运行ALOAM程序学习内容:一、运行前准备1.安装CeresSolverhttps://github.com/ceres-solver/ceres-solver*安装依赖环境sudoapt-getinstallliblapack-devlibsuitesparse-devlibcxsparse3libgflags-devlibgoogle-glog-devlibgt
- Ceres-solver examples之pose_graph_3d学习笔记
幽冥小龙
后端优化slamceres-solver后端优化pose_graph_3d
Ceres-solverexamples之pose_graph_3d学习笔记简要说明变量说明关键步骤一、Costfunction的搭建其中包括:二、构造Problem三、LocalParameterization搭建四、固定初始位姿五、相关链接简要说明ceres-solver库是google的非线性优化库,可以对slam问题,机器人位姿进行优化,使其建图的效果得到改善。pose_graph_3d是
- Ceres-solver examples之pose_graph_2d学习笔记
幽冥小龙
后端优化slamceres-solver二维位姿优化后端优化非线性优化
Ceres-solverexamples之pose_graph_2d学习笔记简要说明变量说明关键步骤一、Costfunction的搭建其中包括:二、构造Problem三、LocalParameterization搭建四、固定初始位姿五、相关链接简要说明ceres-solver库是google的非线性优化库,可以对slam问题,机器人位姿进行优化,使其建图的效果得到改善。pose_graph_2d是
- Ceres用法及Ceres-Sophus在位姿图优化问题的应用
牛犇犇子木
slam算法
(一)Ceres-Solver的一般用法简述:CeresSolverisanopensourceC++libraryformodelingandsolvinglarge,complicatedoptimizationproblems.使用CeresSolver求解非线性优化问题,主要包括以下几部分:构建代价函数(costfunction)或残差(residual)构建优化问题(ceres::Pro
- 视觉SLAM十四讲库安装解决
咚咚0105
经验分享
在学习视觉SLAM十四讲第二版时,对于安装ceres-solver、DBoW3、g2o、Sophus等时遇到了很多的安装库的问题,其原因就是因为安装库不兼容,因为在GitHub上直接下载的slambook2源码里面没有这几个包源文件,我们自己在下载安装这些库时,就会遇到兼容问题而引起许多的报错。这里给大家提供一个解决方法,就是下载高博第一版书籍的源码,里面就会包含这几个库的安装包,以下为slamb
- 【SLAM学习】一些必备依赖包的安装与问题总结
Q小鑫
移动机器人项目人工智能
Ceres:下载地址:https://github.com/ceres-solver/ceres-solver/releases/tag/1.14.01、修改sources.listsudogedit/etc/apt/sources.list2、将此地址添加到source.list上debhttp://cz.archive.ubuntu.com/ubuntutrustymainuniverse3、
- Cartographer 安装 2021.10.27
howtoloveyou
ROS1&ROS2自动驾驶ubuntu人工智能
最近安装了Cartographer,非常感谢下面博客的帮助!使用教程:link1,link2遇到的问题:更改ceres-solver中地址后如果还是无法命中,这是网络问题,如果前面几个包都命中了可以修改src/.rosinstall文件,只去尝试命中ceres-slover(多试几次)在运行rosdepinstall--from-pathssrc--ignore-src--rosdistro=${
- ubuntu18.04 安装ceres,g2o,以及cmake升级
骑羊儿放狼
ubuntu
背景:在进行slam开发时,需要的一些包一.ceres安装1.下载Ceres方法一:直接下载下载链接:https://github.com/ceres-solver/ceres-solver这里我下载的是2.0.0版本,下载后解压在主目录。方法二:使用git命令下载gitclonehttps://ceres-solver.googlesource.com/ceres-solver2.安装相关依赖s
- 安装Ceres2.0.0遇到的问题
川河w
ubuntulinux服务器
安装Ceres2.0.0遇到的问题1、下载依赖访问源代码网址:https://github.com/ceres-solver/ceres-solver,点击右侧的tags选择版本。安装相关依赖(Ubuntu从18.04开始往后都是libcxsparse3)sudoapt-getinstallliblapack-devlibsuitesparse-devlibcxsparse3libgflags-d
- ubuntu18安装code_utils与imu_utils并标定imu内参
shuishengabc123
slam
ubuntu18.04编译code_utils与imu_utils并标定imu内参imu_utils由港科大推出,用于标定imu内参1安装ceres,已安装忽略此步GitHub-ceres-solver/ceres-solver:Alargescalenon-linearoptimizationlibrary2创建ros工作空间mkdir-p~/imu_catkin_ws/srccd~/imu_c
- java数字签名三种方式
知了ing
javajdk
以下3钟数字签名都是基于jdk7的
1,RSA
String password="test";
// 1.初始化密钥
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(51
- Hibernate学习笔记
caoyong
Hibernate
1>、Hibernate是数据访问层框架,是一个ORM(Object Relation Mapping)框架,作者为:Gavin King
2>、搭建Hibernate的开发环境
a>、添加jar包:
aa>、hibernatte开发包中/lib/required/所
- 设计模式之装饰器模式Decorator(结构型)
漂泊一剑客
Decorator
1. 概述
若你从事过面向对象开发,实现给一个类或对象增加行为,使用继承机制,这是所有面向对象语言的一个基本特性。如果已经存在的一个类缺少某些方法,或者须要给方法添加更多的功能(魅力),你也许会仅仅继承这个类来产生一个新类—这建立在额外的代码上。
- 读取磁盘文件txt,并输入String
一炮送你回车库
String
public static void main(String[] args) throws IOException {
String fileContent = readFileContent("d:/aaa.txt");
System.out.println(fileContent);
- js三级联动下拉框
3213213333332132
三级联动
//三级联动
省/直辖市<select id="province"></select>
市/省直辖<select id="city"></select>
县/区 <select id="area"></select>
- erlang之parse_transform编译选项的应用
616050468
parse_transform游戏服务器属性同步abstract_code
最近使用erlang重构了游戏服务器的所有代码,之前看过C++/lua写的服务器引擎代码,引擎实现了玩家属性自动同步给前端和增量更新玩家数据到数据库的功能,这也是现在很多游戏服务器的优化方向,在引擎层面去解决数据同步和数据持久化,数据发生变化了业务层不需要关心怎么去同步给前端。由于游戏过程中玩家每个业务中玩家数据更改的量其实是很少
- JAVA JSON的解析
darkranger
java
// {
// “Total”:“条数”,
// Code: 1,
//
// “PaymentItems”:[
// {
// “PaymentItemID”:”支款单ID”,
// “PaymentCode”:”支款单编号”,
// “PaymentTime”:”支款日期”,
// ”ContractNo”:”合同号”,
//
- POJ-1273-Drainage Ditches
aijuans
ACM_POJ
POJ-1273-Drainage Ditches
http://poj.org/problem?id=1273
基本的最大流,按LRJ的白书写的
#include<iostream>
#include<cstring>
#include<queue>
using namespace std;
#define INF 0x7fffffff
int ma
- 工作流Activiti5表的命名及含义
atongyeye
工作流Activiti
activiti5 - http://activiti.org/designer/update在线插件安装
activiti5一共23张表
Activiti的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。
ACT_RE_*: 'RE'表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。
A
- android的广播机制和广播的简单使用
百合不是茶
android广播机制广播的注册
Android广播机制简介 在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理。这个广播跟我们传统意义中的电台广播有些相似之处。之所以叫做广播,就是因为它只负责“说”而不管你“听不听”,也就是不管你接收方如何处理。另外,广播可以被不只一个应用程序所接收,当然也可能不被任何应
- Spring事务传播行为详解
bijian1013
javaspring事务传播行为
在service类前加上@Transactional,声明这个service所有方法需要事务管理。每一个业务方法开始时都会打开一个事务。
Spring默认情况下会对运行期例外(RunTimeException)进行事务回滚。这
- eidtplus operate
征客丶
eidtplus
开启列模式: Alt+C 鼠标选择 OR Alt+鼠标左键拖动
列模式替换或复制内容(多行):
右键-->格式-->填充所选内容-->选择相应操作
OR
Ctrl+Shift+V(复制多行数据,必须行数一致)
-------------------------------------------------------
- 【Kafka一】Kafka入门
bit1129
kafka
这篇文章来自Spark集成Kafka(http://bit1129.iteye.com/blog/2174765),这里把它单独取出来,作为Kafka的入门吧
下载Kafka
http://mirror.bit.edu.cn/apache/kafka/0.8.1.1/kafka_2.10-0.8.1.1.tgz
2.10表示Scala的版本,而0.8.1.1表示Kafka
- Spring 事务实现机制
BlueSkator
spring代理事务
Spring是以代理的方式实现对事务的管理。我们在Action中所使用的Service对象,其实是代理对象的实例,并不是我们所写的Service对象实例。既然是两个不同的对象,那为什么我们在Action中可以象使用Service对象一样的使用代理对象呢?为了说明问题,假设有个Service类叫AService,它的Spring事务代理类为AProxyService,AService实现了一个接口
- bootstrap源码学习与示例:bootstrap-dropdown(转帖)
BreakingBad
bootstrapdropdown
bootstrap-dropdown组件是个烂东西,我读后的整体感觉。
一个下拉开菜单的设计:
<ul class="nav pull-right">
<li id="fat-menu" class="dropdown">
- 读《研磨设计模式》-代码笔记-中介者模式-Mediator
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/*
* 中介者模式(Mediator):用一个中介对象来封装一系列的对象交互。
* 中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
*
* 在我看来,Mediator模式是把多个对象(
- 常用代码记录
chenjunt3
UIExcelJ#
1、单据设置某行或某字段不能修改
//i是行号,"cash"是字段名称
getBillCardPanelWrapper().getBillCardPanel().getBillModel().setCellEditable(i, "cash", false);
//取得单据表体所有项用以上语句做循环就能设置整行了
getBillC
- 搜索引擎与工作流引擎
comsci
算法工作搜索引擎网络应用
最近在公司做和搜索有关的工作,(只是简单的应用开源工具集成到自己的产品中)工作流系统的进一步设计暂时放在一边了,偶然看到谷歌的研究员吴军写的数学之美系列中的搜索引擎与图论这篇文章中的介绍,我发现这样一个关系(仅仅是猜想)
-----搜索引擎和流程引擎的基础--都是图论,至少像在我在JWFD中引擎算法中用到的是自定义的广度优先
- oracle Health Monitor
daizj
oracleHealth Monitor
About Health Monitor
Beginning with Release 11g, Oracle Database includes a framework called Health Monitor for running diagnostic checks on the database.
About Health Monitor Checks
Health M
- JSON字符串转换为对象
dieslrae
javajson
作为前言,首先是要吐槽一下公司的脑残编译部署方式,web和core分开部署本来没什么问题,但是这丫居然不把json的包作为基础包而作为web的包,导致了core端不能使用,而且我们的core是可以当web来用的(不要在意这些细节),所以在core中处理json串就是个问题.没办法,跟编译那帮人也扯不清楚,只有自己写json的解析了.
- C语言学习八结构体,综合应用,学生管理系统
dcj3sjt126com
C语言
实现功能的代码:
# include <stdio.h>
# include <malloc.h>
struct Student
{
int age;
float score;
char name[100];
};
int main(void)
{
int len;
struct Student * pArr;
int i,
- vagrant学习笔记
dcj3sjt126com
vagrant
想了解多主机是如何定义和使用的, 所以又学习了一遍vagrant
1. vagrant virtualbox 下载安装
https://www.vagrantup.com/downloads.html
https://www.virtualbox.org/wiki/Downloads
查看安装在命令行输入vagrant
2.
- 14.性能优化-优化-软件配置优化
frank1234
软件配置性能优化
1.Tomcat线程池
修改tomcat的server.xml文件:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxThreads="1200" m
- 一个不错的shell 脚本教程 入门级
HarborChung
linuxshell
一个不错的shell 脚本教程 入门级
建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行)。 如同其他语言一样
- Spring4新特性——核心容器的其他改进
jinnianshilongnian
spring动态代理spring4依赖注入
Spring4新特性——泛型限定式依赖注入
Spring4新特性——核心容器的其他改进
Spring4新特性——Web开发的增强
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
Spring4新特性——Groovy Bean定义DSL
Spring4新特性——更好的Java泛型操作API
Spring4新
- Linux设置tomcat开机启动
liuxingguome
tomcatlinux开机自启动
执行命令sudo gedit /etc/init.d/tomcat6
然后把以下英文部分复制过去。(注意第一句#!/bin/sh如果不写,就不是一个shell文件。然后将对应的jdk和tomcat换成你自己的目录就行了。
#!/bin/bash
#
# /etc/rc.d/init.d/tomcat
# init script for tomcat precesses
- 第13章 Ajax进阶(下)
onestopweb
Ajax
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- Troubleshooting Crystal Reports off BW
blueoxygen
BO
http://wiki.sdn.sap.com/wiki/display/BOBJ/Troubleshooting+Crystal+Reports+off+BW#TroubleshootingCrystalReportsoffBW-TracingBOE
Quite useful, especially this part:
SAP BW connectivity
For t
- Java开发熟手该当心的11个错误
tomcat_oracle
javajvm多线程单元测试
#1、不在属性文件或XML文件中外化配置属性。比如,没有把批处理使用的线程数设置成可在属性文件中配置。你的批处理程序无论在DEV环境中,还是UAT(用户验收
测试)环境中,都可以顺畅无阻地运行,但是一旦部署在PROD 上,把它作为多线程程序处理更大的数据集时,就会抛出IOException,原因可能是JDBC驱动版本不同,也可能是#2中讨论的问题。如果线程数目 可以在属性文件中配置,那么使它成为
- 正则表达式大全
yang852220741
html编程正则表达式
今天向大家分享正则表达式大全,它可以大提高你的工作效率
正则表达式也可以被当作是一门语言,当你学习一门新的编程语言的时候,他们是一个小的子语言。初看时觉得它没有任何的意义,但是很多时候,你不得不阅读一些教程,或文章来理解这些简单的描述模式。
一、校验数字的表达式
数字:^[0-9]*$
n位的数字:^\d{n}$
至少n位的数字:^\d{n,}$
m-n位的数字:^\d{m,n}$