3 回答

TA貢獻1891條經驗 獲得超3個贊
只需將小數點和E-then-指數部分都設置為可選:
[1-9][0-9]*\.?[0-9]*([Ee][+-]?[0-9]+)?
我不明白為什么您也不想讓領導[+-]?也捕獲可能的信號,但是,無論如何!-)
編輯:實際上可能沒有小數點剩余的數字(在這種情況下,我想必須有小數點和其后的1+數字?。虼孙@然需要豎線(替代):
(([1-9][0-9]*\.?[0-9]*)|(\.[0-9]+))([Ee][+-]?[0-9]+)?

TA貢獻1858條經驗 獲得超8個贊
這是我上交的。
(([1-9]+\.[0-9]*)|([1-9]*\.[0-9]+)|([1-9]+))([eE][-+]?[0-9]+)?
為了便于討論,我將這些部分標記為
( ([1-9]+ \. [0-9]* ) | ( [1-9]* \. [0-9]+ ) | ([1-9]+)) ( [eE] [-+]? [0-9]+ )?
-------------------------------------------------------- ----------------------
A B
A:將所有內容匹配到“ e / E”
B:匹配科學計數法
分解A我們得到三個部分
( ([1-9]+ \. [0-9]* ) | ( [1-9]* \. [0-9]+ ) | ([1-9]+) )
----------1---------- ---------2---------- ---3----
第1部分:允許小數點后的1-9,十進制,0個或多個數字(目標1)
第2部分:允許小數點后的1-9,十進制,0個或多個數字(目標1)2)
第3部分:允許1-9中的1個或多個數字,不帶小數(請參閱目標列表中的#4)
分解B我們得到4個基本部分
( [eE] [-+]? [0-9]+ )?
..--1- --2-- --3--- -4- ..
第1部分:要求科學表示法使用大寫或小寫的“ e”(例如目標8和9);
第2部分:允許對指數使用可選的正號或負號(例如目標4、5和6)。
第3部分:允許1或指數的更多數字(目標8)
第4部分:允許科學記號作為一個組是可選的(目標3)
- 3 回答
- 0 關注
- 871 瀏覽
添加回答
舉報