电子邮件格式上的 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());
我有一个这样的字符串;
"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());