以下是一些示例输入:
<210> DW_AT_name : (indirect string, offset: 0x55): double
<ae> DW_AT_name : (indirect string, offset: 0x24): long int
<b5> DW_AT_name : int
我想提取代表实际类型的字符串。所以我的输出是:
double
long int
int
这是我到目前为止的正则表达式(双重转义,因为它是在 Java 中):
.*DW_AT_name.*:\\s*([^:&&\\S]*)\\s*
它适用于int
,但对另外两个不起作用。我认为最好的解决方案基本上是说“获取最后一个冒号之后的所有内容”,但我不确定如何做。请注意,它还必须包括DW_AT_NAME
stuff.
为此,您不需要正则表达式:
String yourString = "<210> DW_AT_name : (indirect string, offset: 0x55): double";
String result;
if (yourString.contains("DW_AT_name")) {
int lastIndex = yourString.lastIndexOf(":");
result = yourString.substring(lastIndex + 1).trim();
} else {
result = "ERROR"; // or handle this however you want
}
System.out.println(result);
只需找到最后一个:
并拿走之后的一切。然后修剪它以删除前导和尾随空白。
我编辑了我的问题,它还需要检查 DW_AT_name。字符串分割不会[原文如此]做到这一点。
只需使用contains
, 然后。 (编辑后的答案)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)