2016-12-02 43 views
-1

在C++中,我需要創建一個與十進制值相匹配的模式,它至少包含一位在小數點之前或之後的數字。但是,小數點也是可選的。用點簡化正則表達式的小數點

應符合

例子:

10 
1 
.123 
123. 
12.123 

在現階段,我有這樣的事情,但需要更簡單的東西。

(\d+\.?)|(\.?\d+)|(\d+\.?\d+) 
+0

請記住'.'字符是正則表達式中的特殊字符。你需要逃避它。 –

+0

您是否使用本網站或谷歌搜索功能? – Fallenhero

+0

我以前使用「\」。但堆棧溢出編輯器將其刪除。編輯 –

回答

1

對於您的要求,您可以使用這個表達式:

^(?:\d+\.?\d*|\.\d+)$ 

RegEx Demo

  • \d+\.?\d*將匹配沒有小數點或類似123.或帶有小數點的數字的位數。
  • \.\d+將匹配以小數點開始的數字。
+1

這是工作。謝謝。 –

+0

很高興知道它解決了,[您可以點擊答案左上角的勾號**標記答案](http://meta.stackexchange.com/a/5235/160242) – anubhava

0

這是我儘可能簡化它與您提供的信息。

(\d+\.?\d*)|(\d*\.?\d+) 
0
\d*\.?\d* 

我不知道,如果這個工程在C++中,但它確實在Javascript/Python的工作,你的例子。

注意:這將包括.

+1

這也將與'.'' – Fallenhero

+0

相匹配不確定是否允許 - 將對答案進行編輯。 –

+0

我刪除了我的建議,因爲它仍然匹配一個'.' – Fallenhero