java - 使用正则表达式验证 int,我的方法不工作

标签 java regex string

我想确保一个字符串是一个合法的 int。这意味着它必须是一个数字(没有“.”)。但是,在合法值的开头和之后都允许使用空格。以下举例说明:

"53" - good.
"5 " - good.
" 5" - good.
"5 3" - bad

我试过 (\\d|-\\d|\\d| -\\d)+

最佳答案

你可以试试这个:

^\\s*([+-]?\\d+)\\s*$

^ 匹配字符串的开头,

\\s* 包含所有尾随空格,

[+-]? 解释可能的符号

$ 确保它是字符串的末尾。

正如@Dukeling 所指出的,如果您使用matches(),则不需要 anchor (^$)。

关于java - 使用正则表达式验证 int,我的方法不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16812664/

相关文章:

javascript - 替换字符串中的表情符号,除非在特定的文本组内

java - Java 中的子字符串替换

ruby - 字符串到数组到 ruby​​ 中的多维哈希

java - String.replace 不工作

java - 停止该方法直到另一个执行完成?

java - 连接到安全的 websocket

java - Android MediaSession 不显示专辑封面作为锁屏背景

java - 谷歌指南 2.0

c# - 使用 Regex 前瞻将信用卡号分成 4 个 block ?

string - 一种字符串搜索算法,可以快速匹配大量未缩写字符串中的缩写?