如何将Path of Exile中匹配特定高属性的Regex缩短至50字符内?
流放之路(Path of Exile)正则匹配需求解决方案
需求说明
需要匹配包含两个及以上满足以下条件的字符串:
- 属性为力量(Strength)、智力(Intelligence)、敏捷(Dexterity)三者之一
- 属性数值≥45
示例匹配字符串:
+51 to Strength +47 to Intelligence +79 to maximum Life +73 to maximum Mana 28% increased Rarity of Items found +37% to Cold Resistance
该正则需用于游戏《流放之路》,且长度上限为50字符。现有解决方案长度超限:
\b[45][0-9] to (?:Str|Int|Dex)[\s\S]*?\b[45][0-9] to (?:Str|Int|Dex).
询问是否存在长度≤50字符的等效正则表达式。
符合要求的正则表达式
以下是长度合规且功能等效的正则:
\b[4-9]\d to (Str|Int|Dex).*?\b[4-9]\d to \1
逻辑说明
\b[4-9]\d:匹配45-99的数值(覆盖所有≥45的两位数),比原方案的[45][0-9]更简洁全面(Str|Int|Dex):捕获三种属性的标准缩写,后续用\1引用,避免重复书写属性名以压缩长度.*?:非贪婪匹配任意字符,确保精准找到第二个符合条件的属性条目
内容的提问来源于stack exchange,提问作者Benoit Goderre
相关产品推荐
相关产品推荐

