Hướng dẫn php replace last occurrence in string - php thay thế lần xuất hiện cuối cùng trong chuỗi

Đối với người quan tâm: Tôi đã viết một chức năng sử dụng preg_match để bạn có thể thay thế từ phía bên phải bằng regex.

function preg_rreplace[$search, $replace, $subject] {
    preg_match_all[$search, $subject, $matches, PREG_SET_ORDER];
    $lastMatch = end[$matches];

    if [$lastMatch && false !== $pos = strrpos[$subject, $lastMatchedStr = $lastMatch[0]]] {
        $subject = substr_replace[$subject, $replace, $pos, strlen[$lastMatchedStr]];
    }

    return $subject;
}

Hoặc như là sự kết hợp/triển khai tốc ký của cả hai tùy chọn:

function str_rreplace[$search, $replace, $subject] {
    return [false !== $pos = strrpos[$subject, $search]] ?
        substr_replace[$subject, $replace, $pos, strlen[$search]] : $subject;
}
function preg_rreplace[$search, $replace, $subject] {
    preg_match_all[$search, $subject, $matches, PREG_SET_ORDER];
    return [$lastMatch = end[$matches]] ? str_rreplace[$lastMatch[0], $replace, $subject] : $subject;
}

Dựa trên //stackoverflow.com/a/3835653/3017716 và //stackoverflow.com/a/23343396/3017716

Thay thế một phần của chuỗi bằng một chuỗi khác là thẳng về phía trước, nhưng nếu bạn phải thay thế lần xuất hiện cuối cùng của một ký tự hoặc chuỗi bằng một chuỗi khác.

Đây là cách nhanh nhất để làm điều này.

function str_replace_last[ $search , $replace , $str ] {
    if[ [ $pos = strrpos[ $str , $search ] ] !== false ] {
        $search_length  = strlen[ $search ];
        $str    = substr_replace[ $str , $replace , $pos , $search_length ];
    }
    return $str;
}

Đối số đầu tiên $search giữ cho chuỗi được tìm kiếm, $replace là chuỗi thay thế và $str là chuỗi chủ đề, thường được gọi là Haystack.

Cách thay thế lần xuất hiện cuối cùng của chuỗi

    $str       = 'My Name is John.';
    $search    = 'John';
    $replace   = 'Peter';
    echo str_replace_last[ $search , $replace , $str ];
     
    //Result
    My Name is Peter.

Trong trường hợp $search không được tìm thấy bên trong $str, hàm trả về chuỗi ban đầu chưa được xử lý $str. Hành vi này tương thích với hành vi mặc định của chức năng tích hợp

function str_rreplace[$search, $replace, $subject] {
    return [false !== $pos = strrpos[$subject, $search]] ?
        substr_replace[$subject, $replace, $pos, strlen[$search]] : $subject;
}
function preg_rreplace[$search, $replace, $subject] {
    preg_match_all[$search, $subject, $matches, PREG_SET_ORDER];
    return [$lastMatch = end[$matches]] ? str_rreplace[$lastMatch[0], $replace, $subject] : $subject;
}
1 Php, thay thế tất cả các lần xuất hiện của một chuỗi bên trong một chuỗi khác.

1 Câu trả lời cho câu hỏi này.

Xin chào @Kartik,

Bạn có thể sử dụng chức năng này:

function str_lreplace[$search, $replace, $subject]
{
    $pos = strrpos[$subject, $search];

    if[$pos !== false]
    {
        $subject = substr_replace[$subject, $replace, $pos, strlen[$search]];
    }

    return $subject;
}

Hy vọng nó giúp!! Cảm ơn!!
ThanK you!!

Đã trả lời ngày 14 tháng 8 năm 2020by Niroj • & NBSP; 82.800 điểm Aug 14, 2020 by Niroj
• 82,800 points

Các câu hỏi liên quan trong PHP

  • Tất cả danh mục
  • Apache Kafka [84][84]
  • Apache Spark [596][596]
  • Azure [131][131]
  • Dữ liệu lớn Hadoop [1.907][1,907]
  • Blockchain [1.673][1,673]
  • C# [134][134]
  • C ++ [268][268]
  • Tư vấn nghề nghiệp [1.060][1,060]
  • Điện toán đám mây [3,391][3,391]
  • An ninh mạng & hack đạo đức [147][147]
  • Phân tích dữ liệu [1.266][1,266]
  • Cơ sở dữ liệu [855][855]
  • Khoa học dữ liệu [75][75]
  • DevOps & Agile [3.500][3,500]
  • Tiếp thị kỹ thuật số [111][111]
  • Các chủ đề về sự kiện & xu hướng [28][28]
  • IoT [Internet of Things] [387][387]
  • Java [1.220][1,220]
  • Kotlin [3][3]
  • Quản trị Linux [384][384]
  • Học máy [337][337]
  • MicroStrargety [6][6]
  • PMP [423][423]
  • Power BI [516][516]
  • Python [3.160][3,160]
  • RPA [650][650]
  • Salesforce [92][92]
  • Selenium [1.569][1,569]
  • Kiểm tra phần mềm [56][56]
  • Tableau [608][608]
  • Talend [73][73]
  • Các loại [124][124]
  • Phát triển web [3,002][3,002]
  • Hỏi chúng tôi bất cứ điều gì! [66][66]
  • Những người khác [1.435][1,435]
  • Phát triển di động [165][165]

Tham gia cộng đồng công nghệ tích cực nhất thế giới!

Chào mừng trở lại với cộng đồng công nghệ tích cực nhất thế giới!

Đăng ký nhận bản tin của chúng tôi và nhận được các khuyến nghị cá nhân hóa.

Bạn co săn san để tạo một tai khoản? Đăng nhập.

Làm thế nào để loại bỏ sự xuất hiện cuối cùng của chuỗi trong PHP?

Bạn có thể sử dụng chức năng được tích hợp trong php str_replace [] để loại bỏ tất cả sự xuất hiện của hoặc từ chuỗi như dưới đây.Đọc câu hỏi một cách cẩn thận ...use built in php str_replace[] function for removing all the occurance of OR from the string as below. Read question carefully...

Làm thế nào tôi có thể thay đổi ký tự cuối cùng của một chuỗi trong PHP?

SPERTR_REPLACE [] thay thế một bản sao của chuỗi được phân tách bằng các tham số độ dài và [tùy chọn] với chuỗi được đưa ra trong thay thế. replaces a copy of string delimited by the offset and [optionally] length parameters with the string given in replace .

Bài Viết Liên Quan

Chủ Đề