1 回答
TA贡献1799条经验 获得超8个赞
您的正则表达式导致字符串被拆分为后跟空格的任何字母字符。您需要将命令行字符串分解为其组成部分:
screenshot在字符串的开头,后跟一个空格。可选地,方括号内包含的任何内容
[...]另一个可选空格,然后是其他所有内容,直到字符串末尾。
这些组件中的每一个都在 RegEx 中分组,可以表示为:
(screenshot)␠(\[.+\])?␠?(.+)(截图)。+?([.+]) ?(.+)
我假设zinscreenshotz是一个错字。
split在数组的开头和结尾使用结果为空白结果,相反,我建议使用matchAll:
command = `screenshot [ 'li[title="about us"] a', 3,2 ]
div.react-bs-container-body tr > td:nth-child(1)`
Array.from(command.matchAll(/(screenshot) (\[.+\]) ?(.+)/sg))
结果是:
Array(4)
0: "screenshot [ 'li[title="about us"] a', 3,2 ] ↵div.react-bs-container-body tr > td:nth-child(1)"
1: "screenshot"
2: "[ 'li[title="about us"] a', 3,2 ]"
3: "↵div.react-bs-container-body tr > td:nth-child(1)"
添加回答
举报
