0% menganggap dokumen ini bermanfaat (0 suara)
38 tayangan

Lesson 3-String Handling

Pelajaran ini membahas penanganan string dan teks dalam C#, termasuk cara mengakses karakter dalam string, mencari string, memanipulasi string, memisahkan dan menggabungkan string, format string, membandingkan string, dan penggunaan StringBuilder.

Diunggah oleh

Gjala Pankera
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
38 tayangan

Lesson 3-String Handling

Pelajaran ini membahas penanganan string dan teks dalam C#, termasuk cara mengakses karakter dalam string, mencari string, memanipulasi string, memisahkan dan menggabungkan string, format string, membandingkan string, dan penggunaan StringBuilder.

Diunggah oleh

Gjala Pankera
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 25

Pelajaran 3 [ ADVANCE PROGRAMMING]

Penanganan String dan Teks

Arang
AC# char mewakili satu karakter Unicode dan alias struct System.Char . Dalam pelajaran
sebelumnya, kami menjelaskan bagaimana mengekspresikan char literal. Sebagai contoh:

karakter c = 'A';
char baris baru = '\n';

System.Char mendefinisikan berbagai metode statis untuk bekerja dengan karakter, seperti
ToUpper, ToLower, dan IsWhiteSpace. Anda dapat memanggil ini baik melalui tipe System.Char atau
alias char-nya:

Console.WriteLine (System.Char.ToUpper ('c')); // C


Console.WriteLine (char.IsWhiteSpace ('\t')); // BENAR

Di bawah ini adalah metode statis untuk mengkategorikan karakter:

1
Pelajaran 3 [ ADVANCE PROGRAMMING]

Rangkaian
AC# string (== System.String ) adalah urutan karakter yang tidak dapat diubah (tidak dapat diubah).
Dalam pelajaran sebelumnya, kita telah menjelaskan cara mengekspresikan literal string, melakukan
perbandingan kesetaraan, dan menggabungkan dua string. Pelajaran ini mencakup fungsi yang
tersisa untuk bekerja dengan string, yang diekspos melalui anggota statis dan instance dari kelas
System.String .

Cara paling sederhana untuk membuat string adalah dengan menetapkan literal,

string s1 = "Halo";
string s2 = "Baris Pertama\r\nBaris Kedua";
string s3 = @"\\server\fileshare\helloworld.cs";

Deklarasi string juga dapat berisi nilai null,

string kosong = "";


Console.WriteLine (kosong == ""); // BENAR
Console.WriteLine (kosong == string.Empty) ; // BENAR
Console.WriteLine (kosong.Panjang == 0); // BENAR

Kegiatan 1

Bagaimana cara mengakses karakter dalam sebuah string? Tulis cuplikan kode C#.

Mencari String
Metode paling sederhana untuk mencari dalam string adalah Berisi, Mulai Dengan, dan Berakhir
Dengan. Ini semua mengembalikan benar atau salah:

Console.WriteLine ("rubah coklat cepat".Berisi ("coklat")); // BENAR


Console.WriteLine ("rubah coklat cepat".Berakhir Dengan ("rubah")); //
BENAR

Metode Berisi tidak menawarkan kenyamanan kelebihan ini, meskipun Anda dapat mencapai hasil
yang sama dengan metode IndexOf .

IndexOf lebih kuat: mengembalikan posisi pertama dari karakter atau substring yang diberikan (atau
1 jika substring tidak ditemukan):

Console.WriteLine ("abcde".IndexOf("cd")); // 2

LastIndexOf seperti IndexOf, tetapi bekerja mundur melalui string.


IndexOfAny mengembalikan posisi pencocokan pertama dari salah satu set karakter:

Console.Write ("ab,cd ef".IndexOfAny (karakter baru[] {' ', ','} ));


// 2
Console.Write ("pas5w0rd".IndexOfAny ("0123456789".ToCharArray() )) ; // 3

2
Pelajaran 3 [ ADVANCE PROGRAMMING]

LastIndexOfAny melakukan hal yang sama dalam arah sebaliknya.


Kegiatan 2

Buat program C# yang memungkinkan pengguna memasukkan kalimat dan kemudian memasukkan
kata untuk mencari dalam kalimat. Program akan menampilkan jumlah kata dalam kalimat tersebut.

Contoh.
Masukkan sebuah kalimat: Rubah coklat coklat cepat melompat ke atas
Masukkan kata untuk mencari: coklat
Jumlah kata "coklat": 4

Memanipulasi String
Karena String tidak dapat diubah, semua metode yang "memanipulasi" string mengembalikan yang
baru, membiarkan yang asli tidak tersentuh (hal yang sama berlaku ketika Anda menetapkan kembali
variabel string).

Substring mengekstrak sebagian dari string:

string kiri3 = "12345".Substring (0, 3); // kiri3 = "123";


string mid3 = "12345".Substring (1, 3); // tengah3 = "234";

Jika Anda menghilangkan panjangnya, Anda mendapatkan sisa string:

string end3 = "12345".Substring (2); // akhir3 = "345";

Sisipkan dan Hapus Sisipkan atau hapus karakter pada posisi tertentu:

string s1 = "helloworld".Sisipkan (5, ", "); // s1 = "halo, dunia"


string s2 = s1.Hapus (5, 2); // s2 = "halo dunia";

3
Pelajaran 3 [ ADVANCE PROGRAMMING]

PadLeft dan PadRight pad string dengan panjang tertentu dengan karakter tertentu (atau spasi jika
tidak ditentukan):
Console.WriteLine ("12345".PadLeft (9, '*')); // ****12345
Console.WriteLine ("12345".PadLeft (9)); // 12345

TrimStart dan TrimEnd menghapus karakter tertentu dari awal atau akhir string; Trim melakukan
keduanya. Secara default, fungsi-fungsi ini menghapus karakter spasi putih (termasuk spasi, tab,
baris baru, dan variasi Unicode dari ini):

Console.WriteLine (" abc \t\r\n ".Trim().Panjang); // 3

Ganti menggantikan semua (tidak tumpang tindih) kemunculan karakter atau substring tertentu :

Console.WriteLine ("harus dilakukan".Ganti (" ", " | ") ); // ke | menjadi


| selesai
Console.WriteLine ("harus dilakukan".Ganti (" ", "") ); // harus
dilakukan

Memisahkan dan Menggabungkan String


Split mengambil kalimat dan mengembalikan array kata:
string[] words = "Rubah coklat cepat".Split();
foreach (string kata dalam kata-kata)
Console.Write (kata + "|"); // Si|cepat|coklat|rubah|

Metode Gabung statis melakukan kebalikan dari Split. Itu membutuhkan pembatas dan array string:

string[] words = "Rubah coklat cepat".Split();


string bersama = string.Join (" ", kata); // Rubah coklat cepat

Metode Concat statis mirip dengan Gabung tetapi hanya menerima larik string params dan tidak
menerapkan pemisah. Concat persis sama dengan operator + (kompiler, sebenarnya,
menerjemahkan + ke Concat):

string kalimat = string.Concat("The", "cepat", "coklat", "rubah");


string sameSentence = "The" + "cepat" + "coklat" + "rubah";

Kegiatan 3

Buat program C# yang akan menggantikan kata “coklat” dalam kalimat “Rubah coklat cepat
melompati anjing malas” menjadi kata “oranye”.

4
Pelajaran 3 [ ADVANCE PROGRAMMING]

Format String dan format string Komposit

Format statis menyediakan cara yang nyaman untuk membangun string yang menyematkan
variabel. Variabel yang disematkan (atau nilai) dapat berupa jenis apa pun; Format hanya memanggil
ToString pada mereka.

String master yang menyertakan variabel yang disematkan disebut format komposit
tali . Saat memanggil String.Format, Anda menyediakan string format komposit yang diikuti oleh
masing-masing variabel yang disematkan. Sebagai contoh:

string composite = "Suhu saat ini {0} derajat dalam {1} pada {2} pagi ini";
string s = string.Format (komposit, 35, "Perth", DateTime.Now.DayOfWeek);

// s == "Suhunya 35 derajat di Perth pada Jumat pagi ini"

Setiap angka dalam kurung kurawal disebut item format. Angka tersebut sesuai dengan
posisi argumen dan secara opsional diikuti oleh:

 Koma dan lebar minimum untuk diterapkan


 Titik dua dan format string

Lebar minimum berguna untuk menyelaraskan kolom. Jika nilainya negatif, data rata kiri; jika tidak,
itu rata kanan. Sebagai contoh:

string komposit = "Nama={0,-20} Batas Kredit={1,15:C}";


Console.WriteLine (string.Format (komposit, "Mary", 500));
Console.WriteLine (string.Format (komposit, "Elizabeth", 20000));

Berikut hasilnya:
Nama = Batas Kredit Mary = $ 500,00
Nama=Batas Kredit Elizabeth= $20,000.00

Kegiatan 4

Tulis cuplikan kode C# yang setara untuk menampilkan hasil di atas tanpa menggunakan format
string .

5
Pelajaran 3 [ ADVANCE PROGRAMMING]

Membandingkan String
Di C#, Anda dapat membandingkan string menggunakan operator persamaan (==) dan
metode .Equal.

Contoh1: Menggunakan operator Kesetaraan

kelas BandingkanString
{
publik statis void Utama( string [] args)
{
string kata1;
string kata2;

Console .WriteLine( "Masukkan kata 1" );


word1 = Konsol .ReadLine();
Console .WriteLine( "Masukkan kata 2" );
word2 = Konsol .ReadLine();

jika (kata1 == kata2)


{
Console .WriteLine( "Sama dengan" );
}
kalau tidak
{
Console .WriteLine( "Tidak sama" );
}
}
}

Contoh2: Menggunakan metode Equal

if (word1.Equals(word2))
{
Console .WriteLine( "Sama dengan" );
}

Contoh3: Menggunakan Persamaan dan mengabaikan kasus

Console .WriteLine( string .Equals(word1,word2, StringComparison


.OrdinalIgnoreCase));

Kegiatan 5

Buat program C# yang akan menentukan apakah kata yang diberikan adalah palindrom atau bukan.

6
Pelajaran 3 [ ADVANCE PROGRAMMING]

Gunakan cara yang sama.

Pembuat Tali

Kelas StringBuilder ( System.Text namespace) mewakili string yang dapat diubah (dapat diedit).
Dengan StringBuilder , Anda dapat Menambahkan , Menyisipkan , Menghapus , dan Mengganti
substring tanpa mengganti seluruh StringBuilder .

StringBuilder adalah kelas C# yang dapat digunakan untuk menyimpan dan memanipulasi tipe data
string, yang ketika dimodifikasi mengembalikan objek StringBuilder yang sama dengan nilai yang
dimodifikasi daripada mengembalikan objek baru. Contoh di bawah ini mewakili perbedaan antara
Kelas String dan StringBuilder .

kelas StringBuilderEx1
{
publik statis batal Utama()
{
isi string = "abcd" ;
konten = konten + "wxyz" ;
Konsol .WriteLine(konten);

StringBuilder content2 = baru StringBuilder ( "abcd" );


konten2.Tambahkan( "wxyz" );

Konsol .WriteLine(content2);
Konsol .ReadKey();

}
}

Dalam contoh, konten string yang dipakai tidak menyimpan nilai literal string dari " abcd " dan
variabel ini menunjuk ke objek tipe string di ruang memori. Di baris kode berikutnya, string literal
lain " wxyz " ditambahkan ke string. Apa yang terjadi adalah bahwa alih-alih memodifikasi objek yang
berisi " abcd " objek baru dipakai dalam memori dan variabel konten dibuat untuk merujuk ke objek
baru ini.

Sebaliknya, dalam contoh di atas, objek StringBuilder bernama content2 dipakai dan diberi nilai
string “ abcd ”. Selanjutnya, metode Append dipanggil pada variabel content2 dan nilai string “ wxyz
” dilewatkan. Ini menambahkan " wxyz " di akhir konten objek StringBuilder2 . Tetapi dalam kasus
ini, objek baru tidak dibuat di memori; melainkan, objek yang berisi nilai " abcd " dibuat untuk
mengakomodasi string " wxyz " yang ditambahkan.

Kegiatan 6

7
Pelajaran 3 [ ADVANCE PROGRAMMING]

Apa keuntungan menggunakan StringBuilder daripada kelas string?

Fungsi StringBuilder

 Metode AppendLine

Metode append line digunakan untuk menyisipkan baris baru ke dalam String.

kelas StringBuilderAppendLine
{
publik statis batal Utama()
{
StringBuilder sb = baru StringBuilder ( "Contoh AppendLine" );

sb.AppendLine( "Menyenangkan" );

Konsol .WriteLine(sb);
Konsol .ReadKey();
}
}

 Hapus metode

kelas StringBuilderAppendLine
{
publik statis batal Utama()
{
StringBuilder sb = baru StringBuilder ( "Contoh AppendLine" );

sb.AppendLine( "Menyenangkan" );
Konsol .WriteLine(sb);
sb.Hapus (0,7);

Konsol .WriteLine(sb);
Konsol .ReadKey();
}
}

 Ganti metode

StringBuilder sb = baru StringBuilder ( "Contoh AppendLine" );


sb.AppendLine( "Menyenangkan" );

8
Pelajaran 3 [ ADVANCE PROGRAMMING]

sb.Ganti( "AppendLine" , "Ganti" );

 Masukkan metode

StringBuilder sb = baru StringBuilder ( "Contoh AppendLine" );


sb.AppendLine( "Menyenangkan" );
sb.Sisipkan(21, ", Sisipkan" );

Kegiatan 7

Buat program C# yang akan menambahkan StringBuilder dengan nilai dari 1-50 dan setiap nilai
dipisahkan dengan koma. Lihat Contoh keluaran di bawah.

Tanggal dan waktu


Tiga struct yang tidak dapat diubah di System namespace melakukan tugas mewakili tanggal dan
waktu: DateTime , DateTimeOffset , dan TimeSpan . C# tidak mendefinisikan kata kunci khusus apa
pun yang dipetakan ke jenis ini.

Rentang waktu
TimeSpan mewakili interval waktu—atau waktu dalam sehari. Dalam peran terakhir, ini hanyalah
waktu "jam" (tanpa tanggal), yang setara dengan waktu sejak tengah malam dengan asumsi tidak
ada transisi musim panas. TimeSpan memiliki resolusi 100 ns, memiliki nilai maksimum sekitar 10
juta hari, dan bisa positif atau negatif.

Ada tiga cara untuk membangun TimeSpan :


 Melalui salah satu konstruktor
 Dengan memanggil salah satu metode Dari... statis
 Dengan mengurangi satu DateTime dari yang lain

Berikut ini adalah konstruktor:

9
Pelajaran 3 [ ADVANCE PROGRAMMING]

publik (int jam, int menit, int detik);


publik (int hari, int jam, int menit, int detik);
TimeSpan publik (int hari, int jam, int menit, int detik,
int milidetik);
TimeSpan publik (centang panjang); // Setiap centang = 100ns

Dari ... statis lebih nyaman bila Anda ingin menentukan interval hanya dalam satu unit, seperti
menit, jam, dan seterusnya:
TimeSpan FromDays statis publik (nilai ganda);
TimeSpan FromHours statis publik (nilai ganda);
TimeSpan FromMinutes statis publik (nilai ganda);
TimeSpan FromSeconds statis publik (nilai ganda);
TimeSpan FromMilliseconds statis publik (nilai ganda);
Contoh:
Konsol .WriteLine ( baru Rentang Waktu (2, 30, 0)); // 02:30:00
Konsol .WriteLine ( TimeSpan .FromHours (2.5)); // 02:30:00
Konsol .WriteLine ( TimeSpan .FromHours (-2.5)); // 02:30:00

TimeSpan membebani operator < dan >, serta operator + dan -. Ekspresi berikut mengevaluasi ke
TimeSpan 2,5 jam:

Konsol .WriteLine( TimeSpan .FromHours(2) + TimeSpan .FromMinutes(30));

Ekspresi berikutnya dievaluasi menjadi satu detik kurang dari 10 hari:

Konsol .WriteLine( TimeSpan .FromDays(10) - TimeSpan .FromSeconds(1));

// 9.23:59:59)

Dengan menggunakan ekspresi ini, kita dapat mengilustrasikan properti integer Days , Hours , Minutes , Seconds , dan
Milliseconds:

TimeSpan hampirTenDays = TimeSpan .FromDays(10) - TimeSpan .FromSeconds(1);


Konsol .WriteLine(hampirSepuluhHari.Hari); // 9
Konsol .WriteLine(hampirSepuluhHari.Jam); // 23
Konsol .WriteLine(hampirTenDays.Minutes); // 59
Konsol .WriteLine(hampirTenDays.Seconds); // 59
Konsol .WriteLine(hampirTenDays.Milliseconds); // 0

Sebaliknya, properti Total... mengembalikan nilai tipe double yang menjelaskan seluruh rentang waktu:

Konsol .WriteLine(hampirTenDays.TotalDays); // 9.99998842592593


Konsol .WriteLine(hampirTenDays.TotalHours); // 239.999722222222
Konsol .WriteLine(hampirTenDays.TotalMinutes); // 14399.9833333333
Konsol .WriteLine(hampirTenDays.TotalSeconds); // 863999
Konsol .WriteLine(hampirTenDays.TotalMilliseconds); // 863999000

DateTime dan DateTimeOffSet


DateTime dan DateTimeOffset adalah struct yang tidak dapat diubah untuk mewakili tanggal, dan
secara opsional, waktu. Mereka memiliki resolusi 100 ns, dan rentang yang mencakup tahun 0001
hingga 9999.

Contoh:

Konsol .WriteLine( DateTime .Now );

10
Pelajaran 3 [ ADVANCE PROGRAMMING]

Konsol .WriteLine( DateTimeOffset .Now );


Konsol .WriteLine( DateTime .Today );
Konsol .WriteLine( DateTime .UtcNow);
Konsol .WriteLine( DateTimeOffset .UtcNow);

Catatan: Contoh-contoh yang diberikan dalam pelajaran ini hanyalah dasar atau umum. Masih ada
banyak operasi atau cara untuk menggunakan DateTime dan DateTimeOffSet yang tidak dapat
diubah. Silakan jelajahi.

String Format Standar


Ada dua jenis format string:

 String Format Standar

Ini terdiri dari satu huruf, diikuti secara opsional oleh angka. Contohnya adalah "C" atau "F2"

ganda = 34.2343;
//batas hingga 2 tempat desimal
Console .WriteLine( "Angkanya adalah: {0}" , number.ToString( "F2" ));
//dengan format mata uang (secara default akan menempatkan tanda $)
Console .WriteLine( "Angkanya adalah: {0}" , number.ToString( "C2" ));

String format Numerik standar:

11
Pelajaran 3 [ ADVANCE PROGRAMMING]

 S
t
r
i
n
g

Format Kustom

12
Pelajaran 3 [ ADVANCE PROGRAMMING]

Ini micromanage karakter dengan template

//dengan tanda dolar dan dua tempat desimal


Console .WriteLine( "Nomornya adalah: {0}" , number.ToString( "$.##" ));

13
Pelajaran 3 [ ADVANCE PROGRAMMING]

Struktur GUID
Panduan _ struct mewakili pengidentifikasi unik global: nilai 16-byte yang, ketika dihasilkan, hampir
pasti unik di dunia. Pemandu sering digunakan untuk berbagai macam kunci—dalam aplikasi dan
database. Ada 2128 atau 3,4 × 1038 Guid unik .

Panduan statis.NewGuid metode menghasilkan Panduan unik :

g = Panduan .NewGuid ();


Konsol .WriteLine(g.ToString());

Saat direpresentasikan sebagai string, Panduan diformat sebagai angka heksadesimal 32 digit,
dengan tanda hubung opsional setelah digit ke-8, ke-12, ke-16, dan ke-20. Seluruh string juga dapat
secara opsional dibungkus dengan tanda kurung atau kurung:

Panduan g1 = baru Panduan ( "{ 0d57629c -7d6e-4847-97cb-9e2fc25083fe}" );


Panduan g2 = baru Panduan ( " 0d57629c7d6e484797cb9e2fc25083fe " );

Konsol .WriteLine(g1 == g2); // BENAR

Kegiatan 8

Di mana GUID biasa digunakan? Buktikan jawaban Anda dengan memberikan contoh.

Nilai Vs. Persamaan Referensial


Ada dua macam persamaan:

 Nilai Kesetaraan

Dua nilai setara dalam beberapa hal

int = 10;
int b = 10;
Konsol .WriteLine(a == b); //Benar berdasarkan prinsip kesetaraan

14
Pelajaran 3 [ ADVANCE PROGRAMMING]

 Persamaan Referensial

Dua referensi merujuk tepat ke dua objek

Kegiatan 9

Apa perbedaan antara Pernyataan 1 dan Pernyataan 2? Pernyataan manakah yang merupakan
contoh persamaan referensial?

Pernyataan 1:

publik kelas Sampel


{
publik int X;
}

Contoh a1 = baru Contoh () {X =5};


Contoh a2 = baru Contoh () { X = 5 };
Konsol .WriteLine(a1 == a2);

Pernyataan 2:
Contoh a1 = baru Contoh () {X =5};
Contoh a2 = baru Contoh () { X = 5 };
a1 = a2;
Konsol .WriteLine(a1 == a2);

Lebih banyak contoh tentang kesetaraan:

benda x = 5;
objek y = 5;

Konsol .WriteLine(x == y); //"Apa hasilnya?"

Konsol .WriteLine(x.Equals(y)); // "Apa hasilnya?"

Kegiatan 10

Kenapa hasilnya tidak sama?

15
Pelajaran 3 [ ADVANCE PROGRAMMING]

Ekspresi Reguler s
SEBUAH ekspresi reguler adalah pola yang dapat dicocokkan dengan teks input. Kerangka .Net
menyediakan mesin ekspresi reguler yang memungkinkan pencocokan tersebut. Pola terdiri dari
satu atau lebih karakter literal, operator, atau konstruksi.

Kelas RegEx digunakan untuk mewakili ekspresi reguler.

Contoh1: Mencocokkan Kata yang dimulai dengan “S”

kelas Ekspresi RegulerEx1


{
pribadi statis void showMatch ( teks string, string expr )
{
Console .WriteLine( "Ekspresi: " + expr);
MatchCollection mc = Regex .Cocok(teks, expr);
foreach ( Cocokkan m dalam mc)
{
Konsol .WriteLine(m);
}
}
publik statis batal Utama()
{
string str = "Seribu Matahari Terindah" ;

Console .WriteLine( "Mencocokkan kata yang dimulai dengan 'S':


" );
showMatch(str, @"\bS\S*" );
Konsol .ReadKey();
}
}

Contoh2: Mencocokkan Kata yang dimulai dengan “m” dan diakhiri dengan “e”

kelas Ekspresi RegulerEx2


{
pribadi statis void showMatch ( teks string, string expr )
{
Console .WriteLine( "Ekspresi: " + expr);
MatchCollection mc = Regex .Cocok(teks, expr);
foreach ( Cocokkan m dalam mc)
{
Konsol .WriteLine(m);
}
}
publik statis batal Utama()
{
{
string str = "halo labirin dan ukurlah" ;

Console .WriteLine( "Kata yang cocok dimulai dengan 'm' dan


diakhiri dengan 'e':" );
showMatch(str, @"\bm\S*e\b" );
Konsol .ReadKey();
}
}

16
Pelajaran 3 [ ADVANCE PROGRAMMING]

Contoh 3: Identifikasi posisi kata-kata dalam kalimat yang diakhiri dengan " es "

kelas Ekspresi RegulerEx3


{
publik statis batal Utama()
{
pola string = @"\b\w+es\b" ;
Regex rgx = baru Ekspresi reguler (pola);
string kalimat = "Siapa yang menulis catatan ini?" ;

foreach ( Mencocokkan kecocokan dalam rgx.Matches(kalimat))


Konsol .WriteLine( "Ditemukan '{0}' pada posisi {1}" ,
pertandingan.Nilai, pertandingan.Indeks);
}
}

Contoh4: Menggantikan lima kemunculan karakter duplikat pertama dengan satu karakter

Pola ekspresi reguler (\w)\1 cocok dengan kemunculan berurutan dari satu karakter dan
menetapkan kemunculan pertama ke grup penangkapan pertama. Pola penggantian $1
menggantikan seluruh kecocokan dengan grup pertama yang ditangkap.

kelas Ekspresi RegulerEx4


{
publik statis batal Utama()
{
string str = "aabccdeefgghiijklmm" ;
pola string = "(\\w)\\1" ;
penggantian string = "$1" ;
Regex rgx = baru Ekspresi reguler (pola);

string hasil = rgx.Replace(str, replacement, 5);


Konsol .WriteLine( "String Asli: '{0}'" , str);
Console .WriteLine( "String Pengganti: '{0}'" , hasil);
}
}

Contoh5: Pisahkan kata menggunakan tanda hubung sebagai pola

kelas Ekspresi Reguler5


{
publik statis batal Utama()
{
Regex regex = baru Regex ( "-" ); // Pisahkan pada tanda
hubung.
string [] substring = regex.Split( "plum--pir" );
foreach ( kecocokan string dalam substring)
{
Konsol .WriteLine( "{0}" , cocok);
}
}
}

17
Pelajaran 3 [ ADVANCE PROGRAMMING]

Contoh 6: Pisahkan kata-kata dengan angka

kelas Ekspresi RegulerEx6


{
publik statis batal Utama()
{
pola string = @"\d+" ;
Regex rgx = baru Ekspresi reguler (pola);
masukan string = "123ABCDE456FGHIJKL789MNOPQ012" ;

string [] hasil = rgx.Split(input);


untuk ( int ctr = 0; ctr < hasil.Panjang; ctr++)
{
Konsol .Write( "{0}" , hasil[ctr]);
if (ctr < result.Length - 1)
Konsol .Tulis( "," );
}
Konsol .WriteLine();
}
}

Kegiatan 11

Buat aplikasi C# berbasis windows yang akan mengidentifikasi apakah input adalah email atau bukan
email.

18
Pelajaran 3 [ ADVANCE PROGRAMMING]

Karakter Melarikan Diri


Karakter
Keterangan Pola Pertandingan
pelarian

\sebuah Cocok dengan karakter lonceng, \ \sebuah "\u0007" dalam


u0007. "Peringatan!" + '\
u0007'

\b Di kelas karakter, cocok dengan [\b]{3,} "\b\b\b\b" di "\b\b\b\b"


spasi mundur, \u0008.

\t Cocok dengan tab, \u0009. (\w+)\t "Nama\t", " Addr \t" di


"Nama\ tAddr \t"

\r Cocok dengan carriage return, \ \r\n(\w+) "\r\ nHalo " di "\r\


u000D. (\r tidak setara dengan Halo\ nDunia ."
karakter baris baru, \n.)

\v Cocok dengan tab vertikal, \u000B. [\v]{2,} "\v\v\v" di "\v\v\v"

\f Cocok dengan umpan formulir, \ [\f]{2,} "\f\f\f" di "\f\f\f"


u000C.

\n Cocok dengan baris baru, \u000A. \r\n(\w+) "\r\ nHalo " di "\r\
Halo\ nDunia ."

\e Cocok dengan pelarian, \u001B. \e "\x001B" di "\x001B"

\ nnn Menggunakan representasi oktal \w\040\w " a b", "c d" dalam "a
untuk menentukan karakter ( nnn bc d"
terdiri dari hingga tiga digit).

\x nn Menggunakan representasi \w\x20\w " a b", "c d" dalam "a


heksadesimal untuk menentukan bc d"
karakter ( nn terdiri dari tepat dua
digit).

\c X\cx Cocok dengan karakter kontrol \ cC "\x0003" di "\x0003"


ASCII yang ditentukan oleh X atau x, (Ctrl-C)
di mana X atau x adalah huruf dari
karakter kontrol.

\u nnnn Mencocokkan karakter Unicode \w\u0020\w " a b", "c d" dalam "a
dengan menggunakan representasi

19
Pelajaran 3 [ ADVANCE PROGRAMMING]

heksadesimal (tepatnya empat digit, bc d"


seperti yang diwakili oleh nnnn ).

\ Jika diikuti oleh karakter yang tidak \d+[\+-x\*]\d+\ "2+2" dan "3*9"
dikenali sebagai karakter yang lolos, d+[\+-x\*\d+ dalam "(2+2) * 3*9"
cocok dengan karakter tersebut.

Kelas Karakter
Pertanding
Kelas karakter Keterangan Pola
an

[ grup_karakter ] Cocok dengan karakter tunggal [ mn ] "m" di "mat"


apa pun di character_group . "m", "n" di
Secara default, kecocokan "bulan"
peka huruf besar/kecil.

[^ grup_karakter ] Negasi: Mencocokkan karakter [^ ai ] "v", "l" dalam


tunggal apa pun yang tidak ada "berhasil"
dalam character_group .
Secara default, karakter
incharacter_group peka huruf
besar/kecil.

[ pertama - terakhir Rentang karakter: [bd] [bd] irds


] Mencocokkan karakter tunggal Birds Cirds
dalam rentang dari pertama Dirds
hingga terakhir.

. Karakter pengganti: Cocok ae " ave " di


dengan karakter tunggal apa "telah"
pun kecuali \n. "makan" di
"mate"

\p{ nama } Mencocokkan karakter tunggal \p{Lu} "C", "L"


apa pun dalam kategori umum dalam
Unicode atau blok bernama "Lampu
yang ditentukan oleh nama . Kota"

\P{ nama } Mencocokkan karakter tunggal \P{Lu} " i ", "t", "y"
apa pun yang tidak termasuk di "Kota"
dalam kategori umum Unicode
atau blok bernama yang
ditentukan oleh nama .

\w Cocok dengan karakter kata \w "R", "o", "m"


apa pun. dan "1" di
"Kamar #1"

\W Cocok dengan karakter non- \W "#" di

20
Pelajaran 3 [ ADVANCE PROGRAMMING]

kata apa pun. "Kamar #1"

\s Cocok dengan karakter spasi \w\s "D" di "ID


putih apa pun. A1.3"

\S Cocok dengan karakter non- \s\S " _" di " int


spasi apa pun. __ ctr "

\d Cocok dengan angka desimal \d "4" dalam "4


apa pun. = IV"

\D Mencocokkan karakter apa pun \D " ", "=", " ",


selain angka desimal. "Aku", "V"
dalam "4 =
IV"

Ekspresi Reguler Jangkar


Tuntutan Keterangan Pola Pertandingan

^ Pertandingan harus dimulai dari ^\d{3} "567" dalam "567-


awal string atau baris. 777-"

$ Kecocokan harus terjadi di akhir -\d{4}$ "-2012" di "12-12-


string atau sebelum \n di akhir 2012"
baris atau string.

\SEBUAH Kecocokan harus terjadi di awal \A\w{3} "Kode" di "Kode-


string. 007-"

\Z Kecocokan harus terjadi di akhir -\d{3}\Z "-007" dalam


string atau sebelum \n di akhir "Bond-901-007"
string.

\z Kecocokan harus terjadi di akhir -\d{3}\z "-333" dalam "-


string. 901-333"

\G Pertandingan harus terjadi pada \\G\(\d\) "(1)", "(3)", "(5)" di


titik di mana pertandingan "(1)(3)(5)[7](9)"
sebelumnya berakhir.

\b Kecocokan harus terjadi pada \w "R", "o", "m" dan


batas antara karakter \ w "1" di "Kamar #1"
( alfanumerik) dan \W
( nonalfanumerik ).

\B Kecocokan tidak boleh terjadi \Menekuk\ "berakhir", "ender"


pada batas \b . w*\b di "akhir mengirim
pemberi pinjaman

21
Pelajaran 3 [ ADVANCE PROGRAMMING]

bertahan"

Pengelompokan Konstruksi
Mengelompokka Keterangan Pola Pertandingan
n konstruksi

( subekspresi ) Menangkap (\w)\1 " ee " dalam "


subekspresi dalam "
yang cocok
dan
memberinya
nomor urut
berbasis nol.

(?< nama > Menangkap (?< ganda>\w)\k< " ee " dalam "
subekspresi ) subekspresi ganda> dalam "
yang cocok ke
dalam grup
bernama.

(?< nama1 - Mendefinisikan (((?'Buka' \( )[^\(\)]*)+ "((1-3)*(3-1))"


nama2 > definisi grup ((?'Tutup-Buka'\) )[ ^\ dalam "3+2^((1-
subekspresi ) penyeimbang. (\)]*)+)*(?(Buka)(? !))$ 3)*(3-1))"

(?: Mendefinisikan Tulis ( ?:Baris)? " WriteLine " di


subekspresi ) grup yang tidak "
menangkap . Console.WriteLi
ne ()"

22
Pelajaran 3 [ ADVANCE PROGRAMMING]

(? imnsx- Menerapkan A\d{2}(?i:\w+)\b "A12xl",


imnsx:subexpre atau "A12XL" dalam
ssion ) menonaktifkan "A12xl A12XL
opsi yang a12xl "
ditentukan
dalam
subekspresi .

(?= Pernyataan \w +( ?=\.) " adalah ",


subekspresi ) lookahead "berlari", dan
positif lebar-nol "keluar" dalam
. "Dia. Anjing itu
berlari.
Matahari terbit."

(?! Pernyataan \ b( ?!un)\w+\b "yakin",


subekspresi ) lookahead "digunakan"
negatif lebar- dalam "tidak
nol . yakin pasti
kesatuan
digunakan"

(?< = positif lebar- (?< =19)\d{2}\b "51", "03"


subekspresi ) nol di belakang dalam "1851
pernyataan. 1999 1950
1905 2003"

(?< ! negatif lebar (?< !19)\d{2}\b "berakhir",


subekspresi ) nol di balik "ender" di "akhir
pernyataan. mengirim
pemberi
pinjaman
bertahan"

(?> Subekspresi [13579](?>A+B+) "1ABB",


subekspresi ) nonbacktrackin "3ABB", dan
g ( atau "5AB" dalam
"greedy") . "1ABB 3ABBC
5AB 5AC"

Pembilang
Pembilan Keterangan Pola Pertandingan
g

* Mencocokkan elemen \DD ".0", "19.9", "219.9"


sebelumnya nol kali atau

23
Pelajaran 3 [ ADVANCE PROGRAMMING]

lebih.

+ Mencocokkan elemen "jadilah +" "lebah" dalam "telah",


sebelumnya satu kali atau "menjadi" dalam
lebih. "membungkuk"

? Cocok dengan elemen " rai?n " "lari", "hujan"


sebelumnya nol atau satu
kali.

{n} Mencocokkan elemen ",\d{3}" ",043" dalam "1.043.6",


sebelumnya tepat n kali. ",876", ".543", dan ".210"
dalam "9.876.543.210"

{ n ,} Cocok dengan elemen "\d{2,}" "166", "29", "1930"


sebelumnya setidaknya n
kali.

{n,m} Cocok dengan elemen "\d{3,5}" "166", "17668" "19302"


sebelumnya setidaknya n dalam "193024"
kali, tetapi tidak lebih dari m
kali.

*? Mencocokkan elemen \DD ".0", "19.9", "219.9"


sebelumnya nol kali atau
lebih, tetapi sesedikit
mungkin.

+? Mencocokkan elemen " menjadi "menjadi" dalam "telah",


sebelumnya satu kali atau +?" "menjadi" dalam
lebih, tetapi sesedikit "membungkuk"
mungkin.

?? Cocok dengan elemen " rai ??n" "lari", "hujan"


sebelumnya nol atau satu
kali, tetapi sesedikit mungkin.

{ n }? Mencocokkan elemen " ,\ d{3}?" ",043" dalam "1.043.6",


sebelumnya tepat n kali. ",876", ".543", dan ".210"
dalam "9.876.543.210"

{ n ,}? Mencocokkan elemen "\ d{ 2,}?" "166", "29", "1930"


sebelumnya setidaknya n
kali, tetapi sesedikit mungkin.

{ n , m }? Mencocokkan elemen "\ "166", "17668" "193", "024"


sebelumnya antara n dan m d{ 3,5}?" dalam "193024"
kali, tetapi sesedikit mungkin.

24
Pelajaran 3 [ ADVANCE PROGRAMMING]

Konstruksi Referensi Belakang


Membangun Definisi Contoh

(? imnsx - Menyetel atau menonaktifkan opsi \ bA (? i )b\w+\b cocok


imnsx ) seperti ketidakpekaan huruf dengan "ABA",
besar/kecil di tengah pola. "Mampu" dalam "ABA
Mampu Bertindak"

(?#komentar) Komentar sebaris. Komentar \ bA (?#Mencocokkan


berakhir pada kurung penutup kata yang dimulai
pertama. dengan A)\w+\b

# [ke akhir komentar mode-X. Komentar dimulai (?x)\ bA \w+\


baris] pada # unescaped dan berlanjut ke b#Mencocokkan kata
akhir baris. yang dimulai dengan
A

Konstruksi Alternatif
Konstruksi Keterangan Pola Pertandingan
alternatif

| Mencocokkan salah satu elemen yang th ( e|adalah|pada ) " itu ", "ini" dalam
dipisahkan oleh karakter batang "inilah harinya."
vertikal (|).

(? Cocok ya jika ekspresi cocok; jika (?(A)A\d{2}\b|\b\d{3}\b) "A10", "910"


( ekspresi )ya tidak, cocok dengan opsional tanpa dalam "A10 C103
| tidak ) bagian. Ekspresi ditafsirkan sebagai 910"
pernyataan lebar-nol.

(?(nama)ya | Cocok ya jika nama tangkapan yang (?< dikutip>")?(?(dikutip).+?"|\ Dogs.jpg, " Yiska
tidak) disebutkan memiliki kecocokan; jika S+\s) playing.jpg" dalam
tidak, cocok dengan opsional no . "Dogs.jpg " Yiska
playing.jpg""

25

Anda mungkin juga menyukai