0

我这里有一个有趣的问题。我有一个来自 Excel 的纯文本 URL,我需要将其更改为具有唯一正文的 HTML URL。这是javascript的正则表达式代码:

text = text.toString().replace(/=hyperlink\(([@\\\w\s\(\)-\.\/]+)\)/g, "<a href='file:///$1'>$1</a>");

这对于它的作用来说非常好。例如,文本是:

=hyperlink("\\share\folder\log\2013\13-05-13\13-05-13.txt")

正则表达式把它变成

<a href="file:///\\share\folder\log\2013\13-05-13\13-05-13.txt">\\share\folder\log\2013\13-05-13\13-05-13.txt</a>

但是,我需要内部 HTML 只是文本文件名:

<a href="file:///\\share\folder\log\2013\13-05-13\13-05-13.txt">13-05-13.txt</a>

更复杂的是,正则表达式正在经历的原始文本不是一次出现。它是一个包含 100 行的完整电子表格。因此,正则表达式将在一次操作中匹配和替换 100 个这些字符串。

希望有可能在整个字符串的一个正则表达式中完成这一切,但我想我可以先循环遍历字符串的每一行......

如果没有办法用一个正则表达式引擎来做到这一点,你认为最好的方法是什么?(没有 PHP/Python/Server 端。只有 Javascript、HTML、Jquery 等)。

4

1 回答 1

1

我想你可以使用这个正则表达式:

=hyperlink\("([@\\\w\s\(\)\-\.\/]+\\([^"]+))"\)

而这个新的替换:

<a href="file:///$1">$2</a>

我不确定你的正则表达式是如何工作的,但我在正则表达式中添加了引号,并在替换中用双引号替换了单引号。如果需要,还原那些。

演示

于 2013-06-20T19:43:36.563 回答