我这里有一个有趣的问题。我有一个来自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等)。
答案 0 :(得分:1)
我想你可以使用这个正则表达式:
=hyperlink\("([@\\\w\s\(\)\-\.\/]+\\([^"]+))"\)
这个新的替代品:
<a href="file:///$1">$2</a>
我不确定你的正则表达式是如何工作的,但我在正则表达式中添加了引号,并在替换中用双引号替换了单引号。如果需要,还原那些。