Python regex menggantikan kejadian terakhir

Mulai dari konten utama

JavaScript, String, Regexp · 22 Apr 2021

Python regex menggantikan kejadian terakhir

Mengganti kemunculan terakhir dari sebuah pola dalam sebuah string

const replaceLast = (str, pattern, replacement) => {
  const match =
    typeof pattern === 'string'
      ? pattern
      : (str.match(new RegExp(pattern.source, 'g')) || []).slice(-1)[0];
  if (!match) return str;
  const last = str.lastIndexOf(match);
  return last !== -1
    ? `${str.slice(0, last)}${replacement}${str.slice(last + match.length)}`
    : str;
};

Lebih seperti ini

  • Mengganti semua karakter kecuali num_ terakhir dengan karakter topeng yang ditentukan

  • Mengonversi string warna hsl()_ menjadi objek dengan nilai setiap warna

  • Mengonversi string warna rgb()_ menjadi objek dengan nilai setiap warna

Nilai string yang dipanggil metode ini tidak diubah dengan cara apa pun. Ini mengembalikan string baru

Hanya satu penggantian yang akan dilakukan pada pola string. Gunakan replaceAll() atau ekspresi reguler dengan flag g untuk menjalankan pencarian dan penggantian global

JavaScript Ganti Kemunculan Terakhir Menggunakan Metode replace()

String target dan penggantinya diteruskan sebagai argumen saat memanggil Simbol. replace() metode objek dengan pola nama, termasuk objek RegExp. Nilai pengembalian dari replace menjadi nilai pengembaliannya (). Dalam contoh ini, metode @@replace sepenuhnya menyandikan perilaku replace(); . prototipe[@@ganti]

Penggantian ditambahkan ke awal string jika polanya adalah string kosong

Mendefinisikan ekspresi reguler di replace()

Bendera abaikan kasus dan ekspresi reguler didefinisikan dalam replace() dalam contoh berikut

const str = 'This is Know Program 2025';
const newstr = str.replace(/2025/i, '2035');
console.log(newstr);
_

Keluaran. -

Ini adalah Program Tahu 2035

Menggunakan bendera global dan ignCase dengan replace()

Hanya ekspresi reguler yang dapat digunakan untuk melakukan penggantian global. Contoh berikut menggunakan ekspresi reguler yang memungkinkan replace() untuk menukar setiap contoh kata “east” dalam string untuk kata “west. ”

const re = /Bits/gi;
const str = 'Riz studies in Bits, Sid studies in Bits';
const newstr = str.replace(re, 'ABC');
console.log(newstr);

Keluaran. -

Riz belajar di ABC, Sid belajar di ABC

Untuk mengganti substring dengan yang baru dan mengembalikan string baru, gunakan metode replace(). Untuk mengganti substring dengan yang lain di mana pun itu terjadi, gunakan ekspresi reguler dengan bendera global (g)

Jika Anda menikmati posting ini, bagikan dengan teman-teman Anda. Apakah Anda ingin berbagi lebih banyak informasi tentang topik yang dibahas di atas atau Anda menemukan sesuatu yang salah? . Terima kasih

Bilah bahasa ini adalah teman Anda. Pilih bahasa favorit Anda

Pilih bahasa favorit Anda

  • C
  • C++
  • C#
  • Pergi
  • Jawa
  • JS
  • Obj-C
  • PHP
  • Piton
  • Rubi
  • Karat
  • Atau cari.

Idiom #296 Mengganti kemunculan terakhir dari substring

Tetapkan ke x2 nilai string x dengan kejadian terakhir y diganti dengan z
Jika y tidak terdapat dalam x, maka x2 memiliki nilai yang sama dengan x

  • Anak panah
  • Benteng
  • Pergi
  • Pascal
  • Pascal
  • Perl
  • Piton
  • Rubi

var position = x.lastIndexOf(y).clamp(0, x.length);
var x2 = x.replaceFirst(y, z, position);

  • Demo
  • Dokter

  character(len=:), allocatable :: x, x2, y, z

  k = index(x,y,back=.true.)
  if (k > 0) then
     x2 = x(1:k-1) // z // x(k+len(y):)
  else
     x2 = x
  end if
_

import "strings"

func replaceLast(x, y, z string) (x2 string) {
	i := strings.LastIndex(x, y)
	if i == -1 {
		return x
	}
	return x[:i] + z + x[i+len(y):]
}
_

  • Demo

StrUtils

  x2 := x;
  p := RPos(y, x);
  if (p > 0) then
  begin
    Delete(x2, p, Length(y));
    Insert(z, x2, p);
  end;
_

StrUtils

  x2 := ReverseString(StringReplace(ReverseString(x), ReverseString(y), ReverseString(z), []));

$x = 'A BB CCC this DDD EEEE this FFF';
$y = 'this';
$z = 'that';

$x2 = $x;
$pos = rindex $x, $y;
substr($x2, $pos, length($y)) = $z
    unless $pos == -1;

print $x2;

  • Demo
  • Dokter

x2 = z.join(x.rsplit(y, 1))

  character(len=:), allocatable :: x, x2, y, z

  k = index(x,y,back=.true.)
  if (k > 0) then
     x2 = x(1:k-1) // z // x(k+len(y):)
  else
     x2 = x
  end if
_0


Apakah Anda tahu cara terbaik untuk melakukan ini dalam bahasa Anda?

< >

Idiom dibuat oleh programming-idioms. org

Sejarah
  • Lihat revisi
Idiom terkait
  • Ganti fragmen string
  • Pisahkan dengan pemisah string khusus

Lembar contekan

Masalah
  • Laporkan bug

Bagaimana cara mengganti kemunculan karakter terakhir dalam sebuah string dengan Python?

Masalah ini dapat diselesaikan dengan membalik string, membalikkan string yang akan diganti, mengganti string dengan kebalikan dari string yang akan diganti dan terakhir membalikkan string untuk mendapatkan . .

Bagaimana Anda menghapus kemunculan string terakhir dengan Python?

rstrip . Metode string rstrip menghapus karakter dari sisi kanan string yang diberikan padanya. Jadi, kita bisa menggunakannya untuk menghapus elemen terakhir dari string. Kita tidak perlu menulis lebih dari satu baris kode untuk menghapus karakter terakhir dari string.

Bagaimana Anda mengganti hanya satu kemunculan string dengan Python?

replace (old, new[, count]) -> string Kembalikan salinan string S dengan semua kemunculan substring lama diganti dengan yang baru. Jika hitungan argumen opsional diberikan, hanya kemunculan hitungan pertama yang diganti.

Bagaimana menemukan kemunculan karakter terakhir dalam sebuah string dengan Python?

Metode rfind() menemukan kemunculan terakhir dari nilai yang ditentukan. Metode rfind() mengembalikan -1 jika nilainya tidak ditemukan.