我正在使用此工具http://regexr.com/3fvg9 我想在regexxr工具中标记这个(weat)她。
UpgradeMessageDialog* umd = new UpgradeMessageDialog();
umd->ui->label->setOpenExternalLinks(true);
umd->ui->label->setTextInteractionFlags(Qt::TextBrowserInteraction);
umd->ui->label->setText("<a href='mailto:user@foo.com?subject=Test&body=Just a test'>My link</a>");
umd->exec();
umd->ui->label->connect(umd->ui->label,
SIGNAL(linkActivated(const QString&)), umd,
SLOT(linkOpen(const QString&)));
请帮帮我。
答案 0 :(得分:1)
由于没有办法用正则表达式检查单词是否“已知”,我建议先提取所需的这些部分,然后使用一种拼写字典来检查单词是否正确。它不会100%准确,但仍然优于纯正则表达式。
用括号提取粘合词的部分所需的表达式是
(?|([a-zA-Z0-9]+)\(([a-zA-Z\s]+)\)|\(([a-zA-Z\s]+)\)([a-zA-Z0-9]+))
请参阅支持PHP正则表达式的regex demo at regex101。
正则表达式匹配分支重置组内的2个备选项,其中不同分支中的所有捕获组都以相同的ID开头编号:
([a-zA-Z0-9]+)\(([a-zA-Z\s]+)\)
- 第1组(([a-zA-Z0-9]+)
)匹配1个以上的字母数字字符,然后是(
,然后是第2组(([a-zA-Z\s]+)
)匹配1+个字母和空格,然后匹配)
|
- 或\(([a-zA-Z\s]+)\)([a-zA-Z0-9]+)
- (
,然后第1组(([a-zA-Z\s]+)
)匹配1+个字母和空格,)
,然后是第2组(([a-zA-Z0-9]+)
)匹配1个以上的字母数字字符