我無法構建正確的正則表達式。Java - 正則表達式 - 允許0-9,句點,繁殖
有效:
- 1.1.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]+$
感謝您的幫助
我無法構建正確的正則表達式。Java - 正則表達式 - 允許0-9,句點,繁殖
有效:
無效:
到目前爲止,我得到了
^[0-9]+[0-9.-][0-9]+$
感謝您的幫助
^[0-9]+[0-9.-][0-9]+$
模式匹配爲與1個或多個數字([0-9]+
),一個數字或.
或-
([0-9.-]
)以及一個或多個數字([0-9]+
)完全匹配。它可以匹配連續的-
或/和.
內的一串數字。
您可以使用
^[0-9]+(?:[.-][0-9]+)*$
如果在.matches()
方法使用它時,^
和$
錨可以省略。
詳細:
^
- 字符串的開始[0-9]+
- 1以上(+
量詞匹配1次或多次出現,如果你只需要匹配一個單次發生刪除+
量詞)數字(?:[.-][0-9]+)*
- 零或更多連續的sequ的
[.-]
分配辦法 - 一個.
或-
[0-9]+
- 1或多個數字(同樣的量詞音符如上適用)$
- 字符串的結尾。在這裏,這應該做的:
^[0-9]([.-][0-9])*$
一個數字,後跟零所或多個出現的(點/減位)其他答案
稍有不同。 你沒有表明一個孤獨的數字的情況下,無期和連字符:
而且這正則表達式只允許單個數字(例如2.2.2,不22.22.22)
^\d([.-]\d)+$
兩個
^[0-9]([.-][0-9])*$
和
^[0-9]+(?:[.-][0-9]+)*$
作品。謝謝
嘗試像這樣:'([0-9] + [.-])* [0-9] [.-]?'(Methods' matches()'do full match,'^ $'are對他們來說不是必需的。) –
舉例是不夠的。你必須指定你的規則。 – EJP
@EJP他放下了他正在使用的正則表達式,這對他不起作用。所有這些都很好地格式化。你還有什麼期望呢?我認爲這對於新手來說是個不錯的問題。 – GhostCat