我正在编写一个正则表达式,以提取基本C ++函数调用中包含参数的一行的每个元素。
到目前为止,我来了:
DatabaseReference mRef2 = mDatabase.getReference().child("Chat");
mRef2.orderByChild("id").equalTo("-LQ-WuKt5rJ6y5f_Te9S").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()){
for (DataSnapshot data2 : dataSnapshot.getChildren()) {
Chat chat = data2.getValue(Chat.class);
mData.add(chat);
}
}else{
Toast.makeText(getContext(), "kosong", Toast.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
在此示例中:
(?:([\w]+)((?:->|\.)))?([\w]+)(?:(\()((?:[\w]+|\"[^"]*?\"|))(?:\s*(,)\s*((?:[\w]+|\"[^"]*?\"|)))*(\)))
我能够实现的就是获得这些要素
所以我可以得到第一个和最后一个参数(包括最后一个逗号),但不能得到两者之间的所有内容,而且我不太清楚该怎么做。
实际上,我正在对此进行测试。 regex101
这是我正在对其进行测试的示例的另一个列表
test->log(IL_Info,"a", b, c)
只要不超过2个参数,它们都可以正常工作