HTML转义-Reg表达式?

Dil*_*oft 5 html regex string escaping

我想HTML自动且逻辑上转义特定词组,该词组目前是一条语句,并用引号将其突出显示。在语句中,也可以使用引号或英寸标记来描述距离。

该短语可能是:

保罗说:“它使我们错过了大约一英尺。” 实际上,它只有大约9英寸。

为了逃避这个短语,它实际上应该是

<pre>Paul said &ldquo;It missed us by about a foot&rdquo;.  
In fact it was only about 9&prime;.</pre>
Run Code Online (Sandbox Code Playgroud)

这使

<pre>Paul said “It missed us by about a foot”. 
     In fact it was only about 9?.</pre>
Run Code Online (Sandbox Code Playgroud)

我想不出一个示例短语来添加一个“转义符,但那可能在那里!

我正在寻找有关如何在运行时识别出哪些转义符来替换“”字符的帮助。该短语仅是一个示例,可以是任何形式,但应正确形成,即如果出现开/关引号我们将正确地转义文本。

我将使用正则表达式在文本中找到带引号的短语,即句号前的两个字符,然后替换第一个,然后替换第二个。与

&ldquo;
Run Code Online (Sandbox Code Playgroud)

然后

&rdquo;    
Run Code Online (Sandbox Code Playgroud)

如果我发现一个用“替换为”,
除非它在我替换为一个数字之后

&Prime;
Run Code Online (Sandbox Code Playgroud)

我如何处理一个句子中的多个引号?

保罗说:“它只是错过了。”  

这真的会让我难过.....

<pre>"It just missed" Paul said "by 9" almost".</pre>
Run Code Online (Sandbox Code Playgroud)

正确转义后,应阅读以上内容。(这次我显示的是实际字符)

保罗说:“错过了吗?” 几乎”。

显然是一个极端的情况,但是我想知道是否有可能在不了解内容的情况下在运行时逃脱它?如果没有帮助,我们将不胜感激。

Gum*_*mbo 0

你可以尝试这样的事情。首先用这个正则表达式替换引号:

\n\n
"((?:[^"\\d]+|\\d"?)*)"\n
Run Code Online (Sandbox Code Playgroud)\n\n

还有比英寸符号:

\n\n
(\\d+)"\n
Run Code Online (Sandbox Code Playgroud)\n\n

这里\xe2\x80\x99s是一个JavaScript示例:

\n\n
\'"It just missed" Paul said "by 9" almost"\'.replace(/"((?:[^"\\d]*|\\d["\']?)+)"/g, "&ldquo;$1&rdquo;").replace(/(\\d+)"/g, "$1&Prime;");\n
Run Code Online (Sandbox Code Playgroud)\n