[英]Get number between characters in Regex
創建正則表達式有困難。
我有這段文字:
“ L \\”:0.01690502,\\“ C \\”:0.01690502,\\“ V \\”:33.76590433“
我只需要C \\“之后的數字:提取,這是我當前擁有的。
var regex = new Regex(@"(?<=C\\"":)\d +.\d + (?=\s *,\\)");
var test = regex.Match(content).ToString();
decimal.TryParse(test, out decimal closingPrice);
您可以使用此代碼來獲取所有字母和數字對。
var regex = new Regex("(?<letter>[A-Z])[^:]+:(?<number>[^,\"]+)");
var input = "L\":0.01690502,\"C\":0.01690502,\"V\":33.76590433";
var matches = regex.Matches(input).Cast<Match>().ToArray();
foreach (var match in matches)
Console.WriteLine($"Letter: {match.Groups["letter"].Value}, number: {match.Groups["number"].Value}");
如果只需要“ C”字母中的數字,則可以使用此linq表達式:
var cNumber = matches.FirstOrDefault(m => m.Groups["letter"].Value == "C")?.Groups["number"].Value ?? "";
正則表達式說明:
(?<letter>[A-Z]) // capture single letter
[^:]+ // skip all chars until ':'
: // colon
(?<number>[^,"]+) // capture all until ',' or '"'
工作演示
對此進行了修復。
var regex = new Regex("(?<=C\\\":)\\d+.\\d+(?=\\s*,)");
var test = regex.Match(content).ToString();
用於C#的字符串文字:
@"C\\"":([.0-9]*),"
如果您只想過濾有效數字:
@"C\\"":([0-9]+.[0-9]+),"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.