我正在尝试创建循环文本的正则表达式:
示例数据:
1SMITH / JOHN Y 01B ABC CBA BOARD 1 18 123456 |
1HILL / ANETH Y 24D ABC CBA BOARD 1 18 654321 |
到目前为止,我设法创建了单独的表达式:
但是我希望它能用一个表达式。
提前谢谢!
答案 0 :(得分:0)
在QT中试用,源自here且未经测试。
QRegExp rx("^\d?(.+?)[ ,\t].*$");
QString str = "1SMITH/JOHN Y 01B ABC CBA BOARD 1 18 123456 |\n1HILL/ANETH Y 24D ABC CBA BOARD 1 18 654321 |";
QStringList list;
int pos = 0;
while ((pos = rx.indexIn(str, pos)) != -1) {
list << rx.cap(1);
pos += rx.matchedLength();
}
// list: ["SMITH/JOHN", "HILL/ANETH"]
对于正则表达式,演示是here。 它的作用是:
^\d?
在行首(.+?)[ \t,]
捕获任何文字,直到找到第一个空格,制表符或逗号.*$
匹配剩余的文字,直到行尾。