我有一個字符串String a =「(3e4 + 2e2)sin(30)」;我想表現爲a =「(3e4 + 2e2)* sin(30)」;正則表達式匹配並替換字符串之間的兩個字符
我無法爲此編寫正則表達式。
我有一個字符串String a =「(3e4 + 2e2)sin(30)」;我想表現爲a =「(3e4 + 2e2)* sin(30)」;正則表達式匹配並替換字符串之間的兩個字符
我無法爲此編寫正則表達式。
試試這個replaceAll
:
a = a.replaceAll("\) *(\\w+)", ")*$1");
你能否解釋一下,爲什麼我們使用\\ w +,什麼是$ 1和*(\\ w +) –
'\\ w +'來匹配')'後面的任何單詞,'$ 1'是反向引用該字(捕獲的組#1)在替換字符串中。 – anubhava
*(\\ w +)以及爲什麼你在一定的空間後關閉? –
你可以用這個
String func = "sin";// or any function you want like cos.
String a = "(3e4+2e2)sin(30)";
a = a.replaceAll("[)]" + func, ")*siz");
System.out.println(a);
以及如果我有一個String a =「(3e4 + 2e2)cos(30)」;我想要一個正則表達式的所有字符不只是罪惡或cos請幫助 –
您需要將您的函數存儲在一個變量中,然後執行'replaceAll'。請參閱我的答案中的更新。 – Salah
我只想)會改變)*沒有任何字符後,只有那些)在任何字符或數字之前 –
我沒有嘗試去,但下面應該工作
String a = "(3e4+2e2)sin(30)";
a = a.replaceAll("[)](\\w+)", ")*$1");
System.out.println(a);
它顯示結果「(3e4 + 2e2)* 1(30)」 –
我錯誤的語法正則表達式java糾正 –
這應該工作
a = a.replaceAll("\\)(\\s)*([^*+/-])", ") * $2");
String input = "(3e4+2e2)sin(30)".replaceAll("(\\(.+?\\))(.+)", "$1*$2"); //(3e4+2e2)*sin(30)
假設第一個括號內的文字永遠是類似的模式,你可以在位置這個字符串分割成兩個,你想通過追加上半年插入字符,然後形成最終的字符串字符串,新字符和字符串的後半部分。
string a = "(3e4+2e2)sin(30)";
string[] splitArray1 = Regex.Split(a, @"^\(\w+[+]\w+\)");
string[] splitArray2 = Regex.Split(a, @"\w+\([0-9]+\)$");
string updatedInput = splitArray2[0] + "*" + splitArray1[1];
Console.WriteLine("Input = {0} Output = {1}", a, updatedInput);
'一個= a.replaceAll( 「\)罪」, 「)*罪」);' – anubhava
以及如果我有一個字符串一個= 「(3E4 + 2E2)COS(30)」;我想有一個正則表達式的所有字符不只是罪惡或cos請幫助 –
好的檢查下面的答案。 – anubhava