希望这是一个非常简单的问题,但我有以下数据字段见下文:
*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*{(.*?)}
如何删除额外的开始字符?
干杯
答案 0 :(得分:3)
您似乎正在尝试使用[^\\*]
来排除潜在匹配前缀为“*”的匹配项。它有效,但它包含匹配中的前缀。您可以使用negative lookbehind((?<!\*)
)来完成相同的操作,而不会在匹配中包含前缀。
(?<![*\\])frac\s{(.*?)}\s*{(.*?)}
答案 1 :(得分:0)
最简单的是不要在表达式的开头包含额外的位。你真的需要字符串的开头吗?它看起来不像我。所以只需使用:
frac\s{(.*?)}\s*{(.*?)}
答案 2 :(得分:0)
您可以删除第一个[^\\*]
。表达式应该只是:
frac\s{(.*?)}\s*{(.*?)}