替换java中字符串中的“^”

时间:2016-08-04 09:55:50

标签: java string

我使用

替换字符串中的其他字符
String slash_data=cap_data.replaceAll("/", "%2F");

但在替换“^”期间,它并没有替换为该位置。

String string_data="058000657^HELLO HI  /"
String cap_data=string_data.replaceAll("^", "%5E");

这有什么问题?

2 个答案:

答案 0 :(得分:4)

问题是$('#buySize').click(function () { $('#dropdown_id').show(); }); 方法采用正则表达式而不是文字字符串,replaceAll是正则表达式符号,意思是"当前行的开头"。所以它根本不是在寻找^字符。

您需要转义^字符:尝试使用^

(这也有些令人困惑。字符串中的单个反斜杠充当转义字符,因此您需要字符串由单个反斜杠后跟\\^组成。但是您编写单个反斜杠的方式在您的源代码中为^,因为您需要转义反斜杠...)

答案 1 :(得分:3)

^是正则表达式中的特殊字符。它表示字符串的开头。所以你必须逃脱它:

<?php
require('../../../wp-load.php');
require_once(ABSPATH . 'wp-includes/functions.php');
require_once(ABSPATH . 'wp-includes/shortcodes.php');
header('Content-Type: application/json');

$post_name = $_REQUEST['page'];

if($post_name!=''){
    if($post_name=='services') {

    $args = array(
        'post_parent' => $page['services']['id'],
        'post_type'   => 'page', 
        'post_status' => 'published' 
    ); 
    $posts = get_children($args);
    foreach($posts as $po){
        $services_array[] = array('id'=>$po->ID,'title'=>$po->post_title,'image'=>get_post_meta($po->ID, 'webservice_page_image',true),'description'=>preg_replace("~(?:\[/?)[^/\]]+/?\]~s", '', $po->post_content));
    }

    $post = array(
        'status'=>'ok', 
        'services'=>$services_array
    );
    echo json_encode($post);
}
}
?>