我正在做一個小型項目,我必須閱讀命令行。 命令是一個與模式"\\&[abcd]"
匹配的字符串。
如果在上一場比賽和下一場比賽之間有字符串,我必須根據上一個命令對它進行操作。我與while (m.find())
循環,我可以得到符合模式(即命令)的字符串,但我不知道如何獲得不匹配模式的字符串。用""
替換命令並獲取整個字符串將是一種方法,但是我無法對特定的子字符串執行操作。
那麼如何根據前面的命令對命令之間的字符串進行操作呢?除正則表達式之外的所有東西
代碼我有麻煩寫作:
int i=0;
while (m.find()) {
switch (m.group()) {
case "&a":
i+=1;
break;
case "&b":
i+=2;
break;
case "&c":
i=4;
break;
...
}
//get non-pattern matching strings and modify it based on previous commands.
}
下列輸入:$a$bLola$cg
會產生以下輸出:LolaLolaLolagggg
編輯:
命令數或字符串未設置並且可以按任何順序。如果沒有字符串,則不會打印任何內容。如果沒有命令,字符串將被打印而不修改。
重複答案似乎不適用在這裏:正則表達式捕獲只有字符串(不是命令)不起作用,因爲在第一個while(m.find())
循環後,i
將完全改變。
以下輸入:$a$bLola$cg
將輸出LolagLolagLolagLolag
。
你可以添加一些字符串及其替換的例子。 – anubhava