我从文件中读取了一个字符串,我将其拆分为 字符.例如,字符串是
1|test pattern|prefix|url|postfix
Run Code Online (Sandbox Code Playgroud)
所以拆分必须总是给我5个子串,在上面的例子中
["1", "test pattern", "prefix", "url", "postfix"]
Run Code Online (Sandbox Code Playgroud)
当这五个子串中的任何一个包含|时出现问题 字符.我会把它存储为转义\ |
1|test pattern|prefix|url \| title |postfix
Run Code Online (Sandbox Code Playgroud)
现在,你可以看到string.split('|')不会给我想要的结果.期望的结果是
["1", "test pattern", "prefix", "url \| title ", "postfix"]
Run Code Online (Sandbox Code Playgroud)
我尝试了一些正则表达式,但这些都没有给出理想的结果.
string.split(/[^\\]\|/) //["", "", "prefi", "$url \| $titl", " postfix"]
Run Code Online (Sandbox Code Playgroud)
看起来这只能用负面的回顾,但我无法让它工作
另一种方案:
"1|test pattern|prefix|url \\| title |postfix"
.replace(/([^\\])\|/g, "$1$1|")
.split(/[^\\]\|/);
Run Code Online (Sandbox Code Playgroud)
也就是说,你需要使用另一个反斜杠来逃避初始字符串中的反斜杠以使其工作:
"1|test pattern|prefix|url \\| title |postfix"
^
Run Code Online (Sandbox Code Playgroud)
这里有工作演示.
| 归档时间: |
|
| 查看次数: |
1500 次 |
| 最近记录: |