public static bool TryParse(string value, out ExpressionUnit expressionUnit) { expressionUnit = null; var regex = RegexService.GetRegex_FindExpressionParts(); var match = regex.Match(value); if (match.Success) { if (!TryParseValueUnit(match.Groups["firstValue"].Value, out var firstValue)) return false; if (!TryParseOperation(match.Groups["operation"].Value, out var operation)) return false; if (!TryParseValueUnit(match.Groups["secondValue"].Value, out var secondValue)) return false; expressionUnit = new ExpressionUnit(firstValue, operation, secondValue); return true; } // лучше заменить на логирование throw new Exception($"regex match is unsuccessfull, value: \'{value}\'"); }
public void RegexReturnsEmptyStringDueToNoMatch() { var textToMatch = "http://steamcommunity.com/openid/id/notASteamId"; var match = new RegexService().GetFirstGroupMatch(_regex, textToMatch, false); Assert.Equal(string.Empty, match); }
public static string RemoveExcessSpacebar(this string value) { var regex = RegexService.GetRegex_FindMultipleSpacebars(); var result = regex.Replace(value, " "); return(result); }
public void FindExpessionForBracersAdding_FindPlusExpression_OneValueReplaced() { var regex = RegexService.GetRegex_FindExpessionForBracersAdding(false); var input = "13 + \"1\" * \"2\""; var matches = regex.Matches(input); Assert.AreEqual(1, matches.Count); Assert.AreEqual("13 + \"1\"", matches[0].Value); }
public void FindExpessionForBracersAdding_FindMultiplyExpression() { var regex = RegexService.GetRegex_FindExpessionForBracersAdding(); var input = "10 * 3 + 1"; var matches = regex.Matches(input); Assert.AreEqual(1, matches.Count); Assert.AreEqual("10 * 3", matches[0].Value); }
public void FindExpessionForBracersAdding_FindMultiplyExpression_OneValueReplaced() { var regex = RegexService.GetRegex_FindExpessionForBracersAdding(); var input = "13 + 66 * \"0\""; var matches = regex.Matches(input); Assert.AreEqual(1, matches.Count); Assert.AreEqual("66 * \"0\"", matches[0].Value); }
public void FindMultipleSpacebars() { var regex = RegexService.GetRegex_FindMultipleSpacebars(); var spacebars = " "; var input = $"a{spacebars}b"; var matches = regex.Matches(input); Assert.AreEqual(1, matches.Count); Assert.AreEqual(spacebars, matches[0].Value); }
public void FindExpressionParts_ExpressionMultiplyValue() { var regex = RegexService.GetRegex_FindExpressionParts(); var input = "(1000 * 3) * 4321.1"; var groups = regex.Match(input).Groups; Assert.AreEqual("(1000 * 3)", groups["firstValue"].Value); Assert.AreEqual("*", groups["operation"].Value); Assert.AreEqual("4321.1", groups["secondValue"].Value); }
public void FindExpressionParts_ValueDivExpression() { var regex = RegexService.GetRegex_FindExpressionParts(); var input = "3.9 / (2 / 4)"; var groups = regex.Match(input).Groups; Assert.AreEqual("3.9", groups["firstValue"].Value); Assert.AreEqual("/", groups["operation"].Value); Assert.AreEqual("(2 / 4)", groups["secondValue"].Value); }
public void FindExpressionParts_ExpressionMinusExpression() { var regex = RegexService.GetRegex_FindExpressionParts(); var input = "(1 * 3.1) - (2.5 / 4.01)"; var groups = regex.Match(input).Groups; Assert.AreEqual("(1 * 3.1)", groups["firstValue"].Value); Assert.AreEqual("-", groups["operation"].Value); Assert.AreEqual("(2.5 / 4.01)", groups["secondValue"].Value); }
public void FindExpressionParts_ValueDivRemValue() { var regex = RegexService.GetRegex_FindExpressionParts(); var input = "50 % 221"; var groups = regex.Match(input).Groups; Assert.AreEqual("50", groups["firstValue"].Value); Assert.AreEqual("%", groups["operation"].Value); Assert.AreEqual("221", groups["secondValue"].Value); }
public void FindExpressionParts_ValuePlusValue() { var regex = RegexService.GetRegex_FindExpressionParts(); var input = "1 + 2"; var groups = regex.Match(input).Groups; Assert.AreEqual("1", groups["firstValue"].Value); Assert.AreEqual("+", groups["operation"].Value); Assert.AreEqual("2", groups["secondValue"].Value); }
public void IsChinese_ChineseValue_Ture() { //Arrange RegexService regexService = new RegexService(); bool expected = true; //Acaual bool actual = regexService.IsChinese("林菘彬"); //Assert Assert.AreEqual(expected, actual); }
public void RegexService_True_IfTenValidDigitsPassed() { var egnToTest = "7811167244"; var regexService = new RegexService(); var result = regexService.IsStringValid(egnToTest, PATTERN); result .Should() .BeTrue(); }
public void RegexService_False_IfMonthBiggerFiftyNine() { var egnToTest = "7860167244"; var regexService = new RegexService(); var result = regexService.IsStringValid(egnToTest, PATTERN); result .Should() .BeFalse(); }
public void RegexService_False_IfLengthBiggerThanTen() { var egnToTest = "784578781236"; var regexService = new RegexService(); var result = regexService.IsStringValid(egnToTest, PATTERN); result .Should() .BeFalse(); }
public void IsChinese_EnglishValue_False() { //Arrange RegexService regexService = new RegexService(); bool expected = false; //Acaual bool actual = regexService.IsChinese("English"); //Assert Assert.AreEqual(expected, actual); }
public void IsChinese_MixEnglishIAfterChinese_Ture() { //Arrange RegexService regexService = new RegexService(); bool expected = false; //Acaual bool actual = regexService.IsChinese("林菘彬Lin"); //Assert Assert.AreEqual(expected, actual); }
public void IsChinese_NumberValue_Ture() { //Arrange RegexService regexService = new RegexService(); bool expected = false; //Acaual bool actual = regexService.IsChinese("1234"); //Assert Assert.AreEqual(expected, actual); }
public void RegexService_False_IfAnyLetteraInString() { var egnToTest = "8114523A66"; var regexService = new RegexService(); var result = regexService.IsStringValid(egnToTest, PATTERN); result .Should() .BeFalse(); }
public void RegexService_False_IfTenInvalidDigitsPassed() { var egnToTest = "9999999999"; var regexService = new RegexService(); var result = regexService.IsStringValid(egnToTest, PATTERN); result .Should() .BeFalse(); }
public void FindMultipleMinusSymbol() { var regex = RegexService.GetRegex_FindMultipleMinusSymbol(); var minuses1 = "--"; var minuses2 = "-------"; var input = $"{minuses1}a{minuses2}b"; var matches = regex.Matches(input); Assert.AreEqual(2, matches.Count); Assert.AreEqual(minuses1, matches[0].Value); Assert.AreEqual(minuses2, matches[1].Value); }
public RegexParserTests() { var configMock = new Mock <IConfiguration>(); configMock.Setup(config => config["RegexPattern"]).Returns(@"(.{1,3})(\b|.{3}),([\d]*),(\d*\.?\d*$)"); var inputValidatorMock = new Mock <IInputValidatorService>(); inputValidatorMock.Setup(validator => validator.Validate(It.IsAny <string>())).Returns(true); _regexService = new RegexService(configMock.Object, inputValidatorMock.Object); }
private async Task GetNameAndImagesForCsgo() { _logger.Info($"Starting image fetchin for CSGO"); var request = new RequestMessage(HttpMethod.Get, $"http://api.csgo.steamlytics.xyz/v1/items?key={_configuration.ApiKey}"); var imageResponse = await _httpRequestParser.ExecuteRawAsync(request); var response = CsgoSteamlyticsResource.FromJson(imageResponse); var listCount = response.NumItems; var list = response.Items; var regex = new Regex("\\/\\/steamcommunity-a.akamaihd.net\\/economy\\/image\\/(.+)"); var csgoPricing = await _pricingRepository.GetAllAsync(SteamGames.Csgo); var regExService = new RegexService(); for (var index = 0; index < listCount; index++) { var item = list[index]; var name = item.MarketHashName; if (string.IsNullOrEmpty(item.IconUrl)) { continue; } string regExMatch; try { regExMatch = regExService.GetFirstGroupMatch(regex, item.IconUrl); } catch (Exception e) { e.Data.Add("name", name); throw; } var imgUrl = regExMatch; foreach (var csgoItem in csgoPricing.Items) { if (csgoItem.MarketHashName != name) { continue; } csgoItem.IconUrl = imgUrl; break; } } await _pricingRepository.InsertOrUpdateAsync(csgoPricing); _logger.Info($"Images for CSGO done"); }
private async Task GetNameAndImagesForPubg() { _logger.Info($"Starting image fetchin for PUBG"); var nameAndImages = await _steamMarketScraperService.Scrape(SteamPaymentMethodToAppId.ToInt(SteamGames.Pubg)); var regex = new Regex("/economy\\/image\\/([^/]*)"); var pubgPricing = await _pricingRepository.GetAllAsync(SteamGames.Pubg); var regExService = new RegexService(); for (var index = 0; index < nameAndImages.Count; index++) { var item = nameAndImages[index]; var name = item.Name; if (string.IsNullOrEmpty(item.ImageSrc)) { continue; } string regExMatch; try { regExMatch = regExService.GetFirstGroupMatch(regex, item.ImageSrc); } catch (Exception e) { e.Data.Add("name", name); throw; } var imgUrl = regExMatch; foreach (var pubgItem in pubgPricing.Items) { if (pubgItem.MarketHashName != name) { continue; } pubgItem.IconUrl = imgUrl; break; } } await _pricingRepository.InsertOrUpdateAsync(pubgPricing); _logger.Info($"Images for PUBG done"); }
private static async Task <string> GetMovie(string movieUrl) { string pattern1 = "/movie/trailer.*[0-9]\""; string pattern2 = "http.*.mp4"; string temp = await HttpServices.SendGetRequestAsync(movieUrl); string regular = RegexService.RegexAdapt(pattern1, temp); movieUrl = movieUrl.Remove(20); movieUrl += regular.Remove(regular.LastIndexOf("\"")); temp = await HttpServices.SendGetRequestAsync(movieUrl); regular = RegexService.RegexAdapt(pattern2, temp); return(regular); }
private void ContinueButton_Click(object sender, EventArgs e) { if (!RegexService.CheckNum(distanceTextBox.Text)) { MessageBox.Show( "Введите дистанцию", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { DialogResult = DialogResult.OK; Close(); } }
/// <summary> /// Пока что работает только на знаки "-" /// </summary> /// <param name="value"></param> /// <returns></returns> public static string RemoveExcessLeadingSign(this string value) { var regex = RegexService.GetRegex_FindMultipleMinusSymbol(); var match = regex.Match(value); if (match.Success) { if (match.Length % 2 > 0) { return(regex.Replace(value, "-")); } return(regex.Replace(value, "")); } return(value); }
static void Main(string[] args) { string[] result = new string[5]; List <IMyRegex> regices = new List <IMyRegex>(); regices.Add(new ARegex()); regices.Add(new BRegex()); // 從外部決定 哪些 Regex 要判斷,由建構子傳入 RegexService regexService = new RegexService(regices); regexService.GetResult("AAA", result); Console.ReadLine(); }
public Menu() { regexService = new RegexService(); nameGenerator = new FileNameGenerator(); studentConfigurationService = new FileConfigurationService <Student>(); doctorConfigurationService = new FileConfigurationService <Doctor>(); mechanicConfigurationService = new FileConfigurationService <Mechanic>(); name = "data"; extension = "txt"; studentReadWrite = studentConfigurationService.ConfigureFileService(name, extension, "student", nameGenerator); doctorReadWrite = doctorConfigurationService.ConfigureFileService(name, extension, "doctor", nameGenerator); mechanicReadWrite = mechanicConfigurationService.ConfigureFileService(name, extension, "mechanic", nameGenerator); PrintMenu(); }