电子邮件格式上的 Dynamics AX 字符串操作

Dynamics AX String Operations on E-mail format

我有一个这样的字符串;

"B S <b.s@msoft.com>; J T <j.t@msoft.com>; A M <a.m@msoft.com>"

我想return到这个格式;

"b.s@msoft.com, j.t@msoft.com, a.m@msoft.com"

我该怎么做?


str mail, a, mnew;
int b, c;
List strlist = new List(Types::String);
ListIterator iterator;
mail = "B S <b.s@msoft.com>; J T <j.t@msoft.com>; A M <a.m@msoft.com>";

strlist = strSplit(mail,';');

iterator = new ListIterator(strlist);

while (iterator.more())
{
    if (strcontains(iterator.value(), "<"))
    {
        b = strFind(iterator.value(), "<", 1, strLen(iterator.value()));
        c = strFind(iterator.value(), ">", 1, strLen(iterator.value()));
        info(strFmt("%1",subStr(strRem(iterator.value(),'>'),b+1,c)));
    }
    else
    {
        info(strFmt("%1",strLRTrim(iterator.value())));
    }
    iterator.next();
}

我用字符串运行时函数来做到这一点。如何使用正则表达式来实现?

请检查以下可能的正则表达式示例之一:

TextBuffer  textBuffer = new TextBuffer();
int         pos, len;
str         res;
;

textBuffer.setText("Brandon Smith <brandon.smith@msoft.com>; Jake Tyler <jake.tyler@msoft.com>; Amelia Miler <amelia.miler@msoft.com>");
textBuffer.regularExpressions(true);

while (textBuffer.find(@'\<[a-z0-9.@]+\>', pos))
{
    pos = textBuffer.matchPos();
    len = textBuffer.matchLen();

    res = (res == '') ? textBuffer.subStr(pos, len) : res + ', ' + textBuffer.subStr(pos, len);

    pos++;
}

textBuffer.setText(res);
textBuffer.removeChar('<>');

info(textBuffer.getText());