正则表达式提取函数参数

时间:2018-11-08 20:45:28

标签: c++ regex parsing

我正在编写一个正则表达式,以提取基本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]+|\"[^"]*?\"|)))*(\)))

我能够实现的就是获得这些要素

  • 测试
  • “->”
  • 日志
  • “(”
  • IL_Info
  • “,”(最后一个逗号)
  • c
  • “)”

所以我可以得到第一个和最后一个参数(包括最后一个逗号),但不能得到两者之间的所有内容,而且我不太清楚该怎么做。

实际上,我正在对此进行测试。 regex101

这是我正在对其进行测试的示例的另一个列表

test->log(IL_Info,"a", b, c)

只要不超过2个参数,它们都可以正常工作

0 个答案:

没有答案