使用 QRegExp 在 Qt 中突出显示单词
Word highlighting in Qt using QRegExp
我正在尝试使用 QRegExp 突出显示搜索到的词。
这是代码。
QString text = "A <i>bon mot</i>.";
text.replace(QRegExp("<i>([^<]*)</i>"), "<b>\1</b>");
//Output: "A <b>bon mot</b>."
以上代码有效,但以下代码无效。
QString text1 = "This is a sample text.";
text1.replace(QRegExp("s"), "<b>\1</b>");
//Output: "Thi<b></b> i<b></b> a <b></b>ample text."
在正则表达式中,</code>对应第一个匹配的组。组是括号中正则表达式的一部分。例如,将字符串 "hello world" 与正则表达式 <code>(hello)([.*])
匹配,</code> 对应 "hello",<code>
对应“world”。
在你的第二个片段中,
text1.replace(QRegExp("s"), "<b>\1</b>");
你没有使用括号,所以没有组 </code> 会引用。 </p>
<p>使用</p>
<pre><code>text1.replace(QRegExp("(s)"), "<b>\1</b>");
我正在尝试使用 QRegExp 突出显示搜索到的词。
这是代码。
QString text = "A <i>bon mot</i>.";
text.replace(QRegExp("<i>([^<]*)</i>"), "<b>\1</b>");
//Output: "A <b>bon mot</b>."
以上代码有效,但以下代码无效。
QString text1 = "This is a sample text.";
text1.replace(QRegExp("s"), "<b>\1</b>");
//Output: "Thi<b></b> i<b></b> a <b></b>ample text."
在正则表达式中,</code>对应第一个匹配的组。组是括号中正则表达式的一部分。例如,将字符串 "hello world" 与正则表达式 <code>(hello)([.*])
匹配,</code> 对应 "hello",<code>
对应“world”。
在你的第二个片段中,
text1.replace(QRegExp("s"), "<b>\1</b>");
你没有使用括号,所以没有组 </code> 会引用。 </p>
<p>使用</p>
<pre><code>text1.replace(QRegExp("(s)"), "<b>\1</b>");