难以理解 Java 正则表达式解释

Mar*_*ark 1 java regex

有人可以帮助我使用以下 Java 正则表达式吗?我做了一些研究,但我很难把所有东西放在一起。

正则表达式:

"^-?\\d+$"
Run Code Online (Sandbox Code Playgroud)

我对每个符号的作用的理解:

  1. " = 匹配行首
  2. - = 表示范围
  3. ? = 不发生或发生一次
  4. \\d = 匹配数字
  5. + = 匹配一个或多个先前的事物。
  6. $ = 匹配行尾

正则表达式是否说它只想要以数字开头或结尾的匹配项?但是,在做-?进来吗?

Gre*_*Guy 5

-如果它在字符类(即方括号[])内,则仅指示范围。否则,它就像任何其他角色一样正常。考虑到这一点,此正则表达式匹配以下示例:

  • "-2"
  • "3"
  • "-700"
  • "436"

即,一个正整数或负整数:至少一位,可选地前面有一个减号。