Skip to content

Commit 08902ad

Browse files
committed
refactor regular expressions
turns out i didn't know about lazy quantifiers back in the day
1 parent 1d7825b commit 08902ad

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

MLEM.Ui/Parsers/UiMarkdownParser.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public UiMarkdownParser(bool applyDefaultStyling = true) : base(applyDefaultStyl
5353
}
5454

5555
// images
56-
var imageMatch = Regex.Match(line, @"!\[\]\(([^)]+)\)");
56+
var imageMatch = Regex.Match(line, @"!\[\]\((.+?)\)");
5757
if (imageMatch.Success) {
5858
yield return (ElementType.Image, this.ParseImage(imageMatch.Groups[1].Value));
5959
continue;
@@ -79,16 +79,16 @@ public UiMarkdownParser(bool applyDefaultStyling = true) : base(applyDefaultStyl
7979

8080
private string ParseParagraph(string par) {
8181
// replace links
82-
par = Regex.Replace(par, @"<([^>]+)>", "<l $1>$1</l>");
83-
par = Regex.Replace(par, @"\[([^\]]+)\]\(([^)]+)\)", "<l $2>$1</l>");
82+
par = Regex.Replace(par, "<(.+?)>", "<l $1>$1</l>");
83+
par = Regex.Replace(par, @"\[(.+?)\]\((.+?)\)", "<l $2>$1</l>");
8484
// replace formatting
85-
par = Regex.Replace(par, @"\*\*([^\*]+)\*\*", "<b>$1</b>");
86-
par = Regex.Replace(par, @"__([^_]+)__", "<b>$1</b>");
87-
par = Regex.Replace(par, @"\*([^\*]+)\*", "<i>$1</i>");
88-
par = Regex.Replace(par, @"_([^_]+)_", "<i>$1</i>");
89-
par = Regex.Replace(par, @"~~([^~]+)~~", "<st>$1</st>");
85+
par = Regex.Replace(par, @"\*\*(.+?)\*\*", "<b>$1</b>");
86+
par = Regex.Replace(par, "__(.+?)__", "<b>$1</b>");
87+
par = Regex.Replace(par, @"\*(.+?)\*", "<i>$1</i>");
88+
par = Regex.Replace(par, "_(.+?)_", "<i>$1</i>");
89+
par = Regex.Replace(par, "~~(.+?)~~", "<st>$1</st>");
9090
// replace inline code with custom code font
91-
par = Regex.Replace(par, @"`([^`]+)`", $"<f {this.CodeFont}>$1</f>");
91+
par = Regex.Replace(par, "`(.+?)`", $"<f {this.CodeFont}>$1</f>");
9292
return par;
9393
}
9494

MLEM.Ui/UiSystem.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -232,10 +232,10 @@ public UiSystem(Game game, UiStyle style, InputHandler inputHandler = null, bool
232232

233233
this.TextFormatter = new TextFormatter(hasFontModifierFormatting, hasColorFormatting, hasAnimationFormatting, hasMacroFormatting);
234234
if (hasUiFormatting) {
235-
this.TextFormatter.Codes.Add(new Regex("<l(?: ([^>]+))?>"), (f, m, r) => new LinkCode(m, r, 1 / 16F, 0.85F,
235+
this.TextFormatter.Codes.Add(new Regex("<l(?: (.+?))?>"), (f, m, r) => new LinkCode(m, r, 1 / 16F, 0.85F,
236236
t => this.Controls.MousedElement is Paragraph.Link l1 && l1.Token == t || this.Controls.TouchedElement is Paragraph.Link l2 && l2.Token == t,
237237
d => this.Style.LinkColor));
238-
this.TextFormatter.Codes.Add(new Regex("<f ([^>]+)>"), (_, m, r) => new FontCode(m, r,
238+
this.TextFormatter.Codes.Add(new Regex("<f (.+?)>"), (_, m, r) => new FontCode(m, r,
239239
f => this.Style.AdditionalFonts != null && this.Style.AdditionalFonts.TryGetValue(m.Groups[1].Value, out var c) ? c : f));
240240
}
241241
}

0 commit comments

Comments
 (0)