tri*_*420 3 java regex replace match
我得到了一个方程式的字符串,我想用"x²"替换所有出现的方案"x ^ 2".
我的代码:
String equation = "x^2";
equation = equation.replace("^2", "\u00B2"); // u00b2 is unicode for '²'
System.out.println(equation);
Run Code Online (Sandbox Code Playgroud)
这适用于"x ^ 2",但例如"x ^ 25"我得到字符串"x²5",但在这种情况下我希望它保持相同的"x ^ 25".
另一个例子:
"x ^ 2 + 6x" - >"x²+ 6x"// ... x平方
"x ^ 28 + 6x" - >"x ^ 28 + 6x"// ... x为28的幂
谢谢!
编辑:"Mshnik"的解决方案非常完美,即使使用"y ^ 2"而非"x ^ 2"等自定义字符,谢谢!
这里有一个正则表达式将匹配2在x^2中,2中a^2+...而不是2在x^20:
(?<=\w)\^2(?![0-9.])
Run Code Online (Sandbox Code Playgroud)
特别:
(?<= <EXP>)是一个积极的观察<EXP>,更多的解释在这里\w 匹配任何字母字符,大写或小写.\^^从字面上匹配字符22从字面上匹配字符(?! <EXP>)这里有<EXP>更多解释,这是一个负面的预测.[0-9.]匹配所有数字和小数,如58和3.14.因此,它一起匹配2前面的数字,x^而不是数字.
有了它,您可以使用java的Pattern类来查找和重建带有new的字符串².更多关于这一点
请注意,为了获得java正则表达式的反斜杠,您需要使用由字符表示的字面反斜杠字符\\.因此最终结果看起来像(?<=\\w)\\^2(?![0-9.]).
| 归档时间: |
|
| 查看次数: |
281 次 |
| 最近记录: |