Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-Regex-Allow 0-9,句点,hypen_Java_Regex - Fatal编程技术网

Java-Regex-Allow 0-9,句点,hypen

Java-Regex-Allow 0-9,句点,hypen,java,regex,Java,Regex,我不能建立正确的正则表达式 有效期: 1.1.1 1.1-1 1-1.1 1-1-1 1-1 1.1 无效: 1..1 一, 1-1 一,- 到目前为止我 ^[0-9]+[0-9.-][0-9]+$ 感谢您的帮助,^[0-9]+[0-9.-][0-9]+$模式匹配与模式完全匹配的字符串:1个或多个数字([0-9]+),一个数字或或-([0-9.-),然后是1个或多个数字([0-9]+)。它可以在一串数字中匹配连续的-或/和 你可以用 ^[0-9]+(?:[.-][0-9]+)*$ 见

我不能建立正确的正则表达式

有效期:

  • 1.1.1
  • 1.1-1
  • 1-1.1
  • 1-1-1
  • 1-1
  • 1.1
无效:

  • 1..1
  • 一,
  • 1-1
  • 一,-
到目前为止我

^[0-9]+[0-9.-][0-9]+$

感谢您的帮助,
^[0-9]+[0-9.-][0-9]+$
模式匹配与模式完全匹配的字符串:1个或多个数字(
[0-9]+
),一个数字或
-
[0-9.-
),然后是1个或多个数字(
[0-9]+
)。它可以在一串数字中匹配连续的
-
或/和

你可以用

^[0-9]+(?:[.-][0-9]+)*$

如果在
.matches()
方法中使用它,则可以省略
^
$
锚定

详细信息

  • ^
    -字符串的开头
  • [0-9]+
    -1个或多个(
    +
    量词匹配1个或多个匹配项,如果只需要匹配单个匹配项,请删除
    +
    量词)数字
  • (?:[.-][0-9]+)*
    -零个或多个连续的
    • [.-]
      -a
      -
    • [0-9]+
      -1个或多个数字(与上述相同的量词注释适用)
  • $
    -字符串结束
这里应该这样做:

^[0-9]([.-][0-9])*$

一位数字,后跟零次或多次出现的(点/负数字)

其他答案略有变化。 您没有指出没有句号和连字符的单个数字的情况:

  • (无效) 1-(无效) 1(我假设此案例无效)
  • 此外,此正则表达式仅允许使用单个数字(例如2.2.2,而不是22.22.22)

    两者


    工作。谢谢

    尝试这样的方法:
    ([0-9]+[.-])*[0-9][.-]?
    (方法
    匹配()
    进行完全匹配,
    ^$
    对它们来说不是必需的。)给出示例是不够的。你必须指定你的规则。@EJP他记下了他当前使用的正则表达式,但这对他不起作用。所有这些都很好地格式化了。你还期待什么?我认为这对新手来说是个不错的问题。@GhostCat如果他使用的RE不起作用,它就不能正确地指定他需要的规则。这些例子也是如此。人们期待的是我所说的:规则。说明书。例子不可能做到这一点。
        ^\d([.-]\d)+$
    
    ^[0-9]([.-][0-9])*$
    
    ^[0-9]+(?:[.-][0-9]+)*$