我想编写一个JavaScript函数,它将执行系统shell命令(ls例如)并返回值.
我该如何实现这一目标?
我有一个包含"直"(普通,ASCII)引号的文件,我正在尝试将它们转换为真正的引号字形("卷曲"引号,U + 2018到U + 201D).由于从两个不同的引号字符转换为单个字符首先是有损的,显然没有办法自动执行这种转换; 尽管如此,我怀疑一些启发式方法将涵盖大多数情况.因此,该计划是一个脚本(在Emacs中),它执行以下操作:对于每个直引号字符,
这个问题是关于第一步:对于普通的英文文本(例如小说),使用什么是一个好的算法(一组启发式,更像是)?以下是一些初步的想法,我认为这些想法适用于双引号(欢迎反例!):
单引号比较复杂,因为a '可能是开头引号,结束引号或撇号,我们想要单独留下撇号(不能写"绝对不能").一些与上述相同的规则适用,但'可能的撇号是在单词(或行)的开头,尽管它不像过去的'twas那样常见.我不能随便想到能够正确处理像["我喜欢'那'70年代表演''这样片段的规则,"她说.它可能需要查看不仅仅是相邻字符,并计算引号之间的距离,例如......
还有什么想法吗?如果不是所有可能的案件都包括在内,那也没关系; 我们的目标是尽可能聪明,但不能再进一步.:-)
编辑:可能值得考虑的更多事情(或者可能是不相关的,不确定):
如何将所有Double引号替换为打开和关闭大括号.
let str = "This" is my "new" key "string";
Run Code Online (Sandbox Code Playgroud)
我试过这个正则表达式
str.replace(/"/,'{').replace(/"/,'}')
Run Code Online (Sandbox Code Playgroud)
但我最终得到了这个:
{This} is my "new" key "string"
Run Code Online (Sandbox Code Playgroud)
这里只有第一个字正在改变,但我想改变所有的话.我希望结果如下:
{This} is my {new} key {string}
Run Code Online (Sandbox Code Playgroud)
提前致谢.