我有一個文本,將有看起來像這樣的一個或多個配對的名單,提取十進制數
Lat = 38.7970308
Long = -100.8665928
我如何可以提取使用Javascript的數字(負號包括如果有)?我想列出所有的號碼。
我有一個文本,將有看起來像這樣的一個或多個配對的名單,提取十進制數
Lat = 38.7970308
Long = -100.8665928
我如何可以提取使用Javascript的數字(負號包括如果有)?我想列出所有的號碼。
你可以使用這個表達式:
var s ='Lat = 38.7970308\n' +
'Long = -100.8665928';
var m = s.match(/[+-]?(?:\d+(?:\.\d+)?|\.\d+)/g);
//=> ["38.7970308", "-100.8665928"]
試試這個正則表達式:
[\+\-]?\d+.?\d+$
/([+-]?(?:[0-9]+\.)?[0-9]+)/g
您可以使用這一模式基本上提取所有的數字:
/-?\d+(?:\.\d+)?/g
如果,在你的字符串例如,要通過對提取這些數字,你需要使用捕獲組:
/^Lat = (-?\d+(?:\.\d+)?)\s*?\r?\nLong = (-?\d+(?:\.\d+)?)\s*?$/mg
爲每雙創辦,緯度是捕獲組1和捕獲組2中的經度。
請注意,此第二種模式考慮到文字字符串「Lat =」和「Long =」位於一行的開頭,始終按此順序排列,並且僅由一個換行符。 (用米改性劑,^
的意思是「行的開始,和$
意思是‘行’結束)尾部空格與\s*?
允許每個線
例:
var yourString = "Lat = 38.7970308\nLong = -100.8665928";
var myRe = /^Lat = (-?\d+(?:\.\d+)?)\s*?\r?\nLong = (-?\d+(?:\.\d+)?)\s*?$/mg;
var m;
while ((m = myRe.exec(yourString)) !== null) {
console.log(m[1] + "\t" + m[2]+ "\n\n");
}
莫非你提供了你已經嘗試過的代碼 –
使用javascript正則表達式匹配我使用^ [0-9] \ d *(\。\ d +)?$一個類似問題的修改版 – ProgramKitkat
@kitkatCodes:是帶''的格式的數字。 12345'或'12345.'或'000123'或'123.00'或'-0.0'允許嗎? –