1 回答

TA貢獻1799條經驗 獲得超8個贊
您的正則表達式導致字符串被拆分為后跟空格的任何字母字符。您需要將命令行字符串分解為其組成部分:
screenshot
在字符串的開頭,后跟一個空格。可選地,方括號內包含的任何內容
[...]
另一個可選空格,然后是其他所有內容,直到字符串末尾。
這些組件中的每一個都在 RegEx 中分組,可以表示為:
(screenshot)?
(\[.+\])?
??(.+)
(截圖)。+?([.+]) ?(.+)
我假設z
inscreenshotz
是一個錯字。
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)"
添加回答
舉報