我正在尝试使用反向引用来匹配所有使用启用选项实例化的导入类的ripgrep
出现--pcre2
。
首先,我想查看是否正在导入一个类,然后返回引用该类以查找它的实例化位置。
第一次尝试:匹配第一次出现的
new ExifInterface(str)
我的正则表达式是:(import.+(ExifInterface)).+(new\s\2\(.+\))
第二次尝试:匹配最后一次出现的
new ExifInterface(str)
. 我的正则表达式是(import.+(ExifInterface)).+(?:.+?(new\s\2\(.+\)))
我的ripgrep
命令是rg --pcre2 --multiline-dotall -U "(import.+(ExifInterface)).+(new\s\2\(.+?\))" -r '$3' -o
问题。我怎样才能匹配所有的出现new ExifInterface(str)
奖励问题:在某些情况下,我从 得到一个PCRE2: error matching: match limit exceeded
标准错误rg
,但不知道为什么。文档长度只有 161 行。
考虑以下数据样本:
import android.graphics.Point;
import android.media.ExifInterface;
import android.view.WindowManager;
import java.io.IOException;
public class MediaUtils {
/* renamed from: a */
public static float m13571a(String str) {
if (str == null || str.isEmpty()) {
throw new IllegalArgumentException("getRotationDegreeForImage requires a valid source uri!");
}
try {
int attributeInt = new ExifInterface(str).getAttributeInt("Orientation", 1);
if (attributeInt == 3) {
return 180.0f;
new ExifInterface(str).getAttributeInt("Orientation", 1);
}
if (attributeInt == 6) {
return 90.0f;
}