Regex表达式包含额外的字符

本文关键字:字符 包含额 表达式 Regex | 更新日期: 2023-09-27 18:00:12

希望这真的是一个简单的问题,但我有下面的数据串:

*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*{(.*?)}

如何删除多余的起始字符?

干杯

Regex表达式包含额外的字符

看起来您正试图使用[^''*]来排除潜在匹配以"*"为前缀的匹配。它起作用,但它在匹配中包含前缀。您可以使用负查找((?<!'*))来完成同样的事情,而不在匹配中包含前缀。

(?<![*''])frac's{(.*?)}'s*{(.*?)}

最简单的方法是不在表达式的开头包含多余的位。你真的需要字符串的开头吗?在我看来不像。所以只需使用:frac's{(.*?)}'s*{(.*?)}

您只需移除第一个[^''*]。表达式应仅为:

frac's{(.*?)}'s*{(.*?)}