在此字符串中:
val s = "pow(10,3) + pow(10,3) + pow(10,3)"
我需要替换
pow(10,3)
带
1000
所以最终的结果是
1000 + 1000 + 1000
我试过
s.replaceAll("pow(10,3)", "1000")
然而,这不起作用,因为第一个参数是正则表达式,括号表示一个组。上面的陈述实际上并没有取代任何东西。有什么想法吗?
答案 0 :(得分:3)
要替换文字字符串,请不要使用replaceAll
,请使用replace
。
请参阅this Scala demo:
val s = "pow(10,3) + pow(10,3) + pow(10,3)";
print(s.replace("pow(10,3)", "1000"));
// => 1000 + 1000 + 1000
如果您需要使用replaceAll
,必须使用加倍的反斜杠对文字括号进行转义:
s.replaceAll("pow\\(10,3\\)", "1000")
或者,使用三引号字符串文字并使用单个反斜杠来转义特殊的正则表达式元字符:
s.replaceAll("""pow\(10,3\)""", "1000")
请参阅this Scala demo和another one here。
replaceAll
和replace
都将取代多个出现次数。
在replace
旁边,您可以使用replaceAllLiterally(literal: String, replacement: String): String
另见Is there ever a reason to use Scala's StringLike.replaceAllLiterally over Java's String.replace?
答案 1 :(得分:1)
您需要将if (isset($_POST['submit']))
{
require 'gettoken1.php';
{
$baseurl = 'http://202.124.173.189/api/v1/doctorAvailability';
$curl = curl_init($baseurl);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json',"Authorization: Bearer $atoken"));
// Set the POST arguments to pass to the Sugar server
$rawPOSTdata = array(
"type" => "private",
"hosID" => $_POST['hosMaptxt'],
"specID" => $_POST['specialityMaptxt'],
"date" => $_POST['date'],
"name" => '%'.$_POST['docname'].'%'
);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($rawPOSTdata));
$response = curl_exec($curl);
curl_close($curl);
if (!$response)
{
die("Connection Failure.\n");
$result = json_decode($response,true);
$json=$result['data']['resultMap'];
$html=array();
$output[]="<table><tr> ";
foreach($result['resultMap']as $data)
{
$output.="<td>".$data['SpecName']."</td>";
$output.="<td>".$data['HosName']."</td>";
$output.="<td>".$data['DocName']."</td>";
$output.="<td>".$data['DoctorNo']."</td>";
$output.="<td>".$data['AppDay']."</td>";
$output.="<td>".$data['HosTown']."</td>";
}
$output .="</tr></table>";
echo $output;
}
curl_close($curl);
if ( isset($result->error) )
{
die($result->error_message."\n");
}
}
?>
和(
与)
一起转义,否则将其视为群组
\
&#13;
你需要双重转义括号:var re = /pow\(10,3\)/g;
var str = 'pow(10,3) + pow(10,3) + pow(10,3)';
var subst = '1000';
var result = str.replace(re, subst);
console.log(result);
答案 2 :(得分:1)
尝试replaceAllLiterally
,接受String literal
作为输入。
val str = "pow(10,3) + pow(10,3) + pow(10,3)";
println(str.replaceAllLiterally("pow(10,3)", "1000"));
答案 3 :(得分:0)
您可以使用反斜杠转义括号,以便将它们视为另一个字符:
"""pow\(10,3\)"""