efuns - strings - reg_assoc

MudOS v21c2

reg_assoc(3)�� MudOS v21c2���� (26 Dec 1994)

�����ƣ�
    �� reg_assoc() - һ��������ʽ (regular pattern) ���ַ���ߢȡ��(extractor)
���﷨��
    �� mixed *reg_assoc(string str, string *pat_arr, mixed *tok_arr, void | mixed def);

    �� ��� *reg_assoc(�ַ��� str, �ַ��� *pat_arr, ��� *tok_arr, �޲��� | ��� def);

���÷���
    �� reg_assoc ��һ���ַ�����չ(explode)ΪһЩ���ϸ��� pat_arr �����ʾ(regular expression)��ʽ�ַ��������ַ��������Һ͸�����������Ԫ(token) tok_arr �����ᡣ��� def��Ԥ��ֵ 0����ָ���Ļ���������һ��δ����������ᡣ����ֵ�Ǻ��ж�������������飬��һ����һ�����¸�ʽ������
     
      ���� ({ �� 1, ��� 1, �� 2, ��� 2, ..., �� n, ��� n, �� n+1 })

    �� ���ڶ������������Ӧ������ߵ�������Ԫ��
     

      ���� ({ def, �������� 1 ��������Ԫ, ..., def, �������� n ��������Ԫ, def })��
    ��
    �� pat_arr �� tok_arr ����һ����С��tok_arr �ĵ� i ��Ԫ���Ƕ�Ӧ�� pat_arr �ĵ� i ��Ԫ�ء�pat_arr ����ֻ�����ַ�����

    �� ��� pat_arr���� tok_arr���Ĵ�С����Ļ�����ֻ�᷵�� ({ ({ str }), ({ def }) })��

�����ӣ�
      �� #define STRING_PAT "\"(\\\\.|[^\\\"])*\""
      �� #define NUM_PAT "[0-9]+"

      �� #define F_STRING 1
      �� #define F_NUM 2

      �� reg_assoc("Blah \"blah\" test 203 hhh j 308 \"bacdcd\b\"acb",

        ({ STRING_PAT, NUM_PAT }), ({ F_STRING, F_NUM }), "no-match")

    �� ���᷵��

      ���� ({ ({ "Blah ", "\"blah\"", " test ", "203", " hhh j ", "308", " ",
        ������ "\"bacdcd\b\"", "acb" }),
      ���� ({ "no-match", F_STRING, "no-match", F_NUM, "no-match", F_NUM,
        ���� "no-match", F_STRING, "no-match" }) })

�����룺

�ص���һҳ