Regex 用点简化正则表达式 在C++中,我需要创建一个模式,该模式匹配十进制值,包括小数点之前或之后的至少一个数字。但是,小数点也是可选的
应匹配的示例:Regex 用点简化正则表达式 在C++中,我需要创建一个模式,该模式匹配十进制值,包括小数点之前或之后的至少一个数字。但是,小数点也是可选的,regex,Regex,应匹配的示例: 10 1 .123 123. 12.123 目前我有类似的东西,但需要更简单的 (\d+\.?)|(\.?\d+)|(\d+\.?\d+) 根据您的要求,您可以使用此正则表达式: ^(?:\d+\.?\d*|\.\d+)$ \d+\.?\d*将匹配不带小数点的数字或类似123.的数字或带小数点的数字 \。\d+将匹配以小数点开始的数字 根据您提供的信息,这是我所能简化的 (\d+\.?\d*)|(\d*\.?\d+) 我不确定这是否在C++中工作,但它在Java
10
1
.123
123.
12.123
目前我有类似的东西,但需要更简单的
(\d+\.?)|(\.?\d+)|(\d+\.?\d+)
根据您的要求,您可以使用此正则表达式:
^(?:\d+\.?\d*|\.\d+)$
将匹配不带小数点的数字或类似\d+\.?\d*
的数字或带小数点的数字123.
将匹配以小数点开始的数字\。\d+
(\d+\.?\d*)|(\d*\.?\d+)
<>我不确定这是否在C++中工作,但它在JavaScript或Python中也有例子。
注意:这将包括
请记住
字符是正则表达式中的特殊字符。你需要转义它。你使用过这个网站或谷歌的搜索功能吗?我以前用过“\”。但是堆栈溢出编辑器删除了它。编辑您可以使用:^(?::\d+\.?\d*.\d+$
这也将匹配
不确定是否允许-将对答案进行编辑。我删除了我的建议,因为它仍然匹配单个
很高兴知道它成功了,
\d*\.?\d*