希望这真的是一个简单的问题,但我有以下数据串,见下文:
*frac {7frac {1} {2} + 8} {frac {3} {4} +3} = 4
想要返回以下
frac {1} {2}
frac {3} {4}
但我得到以下内容:
7frac {1} {2}
{frac {3} {4}
我现在的表达是:
[^\\*]frac\s{(.*?)}\s*{(.*?)}
如何删除额外的起始字符?
干杯
看起来您正在尝试[^\\*]
排除潜在匹配以“*”为前缀的匹配。它可以工作,但它在匹配中包含前缀。您可以使用否定的lookbehind ( (?<!\*)
) 来完成相同的事情,而无需在匹配中包含前缀。
(?<![*\\])frac\s{(.*?)}\s*{(.*?)}
最简单的方法是在表达式的开头不包含额外的位。你真的需要字符串的开头吗?在我看来不像。所以只需使用:
frac\s{(.*?)}\s*{(.*?)}
您可以删除第一个[^\\*]
. 表达式应该只有:
frac\s{(.*?)}\s*{(.*?)}