/// <summary> /// Rename the specified input, using the relativeCount. /// </summary> /// <param name="input">Input String to rename.</param> /// <param name="relativeCount">Relative count. This can be used for enumeration.</param> /// <returns>A new string renamed according to the rename operation's rules.</returns> public RenameResult Rename(string input, int relativeCount) { if (string.IsNullOrEmpty(input)) { return(new RenameResult()); } RenameResult renameResult; if (string.IsNullOrEmpty(this.SearchString)) { renameResult = new RenameResult(); renameResult.Add(new Diff(input, DiffOperation.Equal)); return(renameResult); } MatchCollection matches; try { // Regex gives us case sensitivity, even when not searching with regex. var regexOptions = this.SearchIsCaseSensitive ? default(RegexOptions) : RegexOptions.IgnoreCase; matches = Regex.Matches(input, this.SearchStringAsRegex, regexOptions); } catch (System.ArgumentException) { renameResult = new RenameResult(); renameResult.Add(new Diff(input, DiffOperation.Equal)); return(renameResult); } renameResult = RenameResultUtilities.CreateDiffFromReplacedMatches(input, this.ReplaceMatch, matches); return(renameResult); }
/// <summary> /// Rename the specified input, using the relativeCount. /// </summary> /// <param name="input">Input String to rename.</param> /// <param name="relativeCount">Relative count. This can be used for enumeration.</param> /// <returns>A new string renamed according to the rename operation's rules.</returns> public RenameResult Rename(string input, int relativeCount) { if (string.IsNullOrEmpty(input)) { return(RenameResult.Empty); } var parseNumbersRegex = "([0-9]+)"; var regex = new Regex(parseNumbersRegex); var matches = regex.Matches(input); var fullReplacementResult = RenameResultUtilities.CreateDiffFromReplacedMatches(input, this.ReplaceMatch, matches); var renameResult = RenameResultUtilities.GetDiffResultFromStrings(input, fullReplacementResult.Result); return(renameResult); }