-1

是否有任何简单的方法可以通过正则表达式将键盘上的引号转换为英文引号,但要确保 HTML 实体被保留?例如,我们想翻译some "text",但我们不想要<span id="blah">

谢谢!

编辑:

你们中的一些人建议,我自己没有尝试过。我试过——我不想表现出不影响你。但没有成功:

string.replace(
     "(?<!\"|\\w|=)\"(?!\\ |\")((?:[^\"]++|\")+?)(?<!\\ |\")\"(?![\"A-Za-z\u00C0-\u02FF\u0370-\u1EFF])()", 
     "“$1”");

但我无法设法不翻译 HTML 标签中的那些引号。

4

2 回答 2

6

为此使用正则表达式会很麻烦,因为 HTML 不是常规语言。您的用例是如此有限(基本上,只是跳过属性值周围的引号),通过足够的努力(就您而言),您可能能够为它想出一个正则表达式,但我会怀疑(尤其是因为在 the=和in 属性之间可以有任意数量的任何类型的空格",这可能使它们看起来很像文本)。

要可靠地做到这一点,您必须真正解析HTML,并且只处理非标记文本。但是,您不必编写解析器,您可以使用已经编写的几个中的任何一个。JSoup是一个特别有名的。

于 2012-05-20T11:34:19.387 回答
2
于 2012-05-20T11:36:52.793 回答