Penggunaan fungsi PCRE pada PHP

Regular Expressions (Perl-Compatible)

  • Introduction
  • Installing/Configuring
    • Requirements
    • Installation
    • Runtime Configuration
    • Resource Types
  • Predefined Constants
  • Examples
  • PCRE Patterns
    • PCRE regex syntax — Pattern Syntax
    • Possible modifiers in regex patterns — Pattern Modifiers
    • Differences From Perl — Perl Differences
  • PCRE Functions
    • preg_filter — Perform a regular expression search and replace
    • preg_grep — Return array entries that match the pattern
    • preg_last_error_msg — Returns the error message of the last PCRE regex execution
    • preg_last_error — Returns the error code of the last PCRE regex execution
    • preg_match_all — Perform a global regular expression match
    • preg_match — Perform a regular expression match
    • preg_quote — Quote regular expression characters
    • preg_replace_callback_array — Perform a regular expression search and replace using callbacks
    • preg_replace_callback — Perform a regular expression search and replace using a callback
    • preg_replace — Perform a regular expression search and replace
    • preg_split — Split string by a regular expression

There are no user contributed notes for this page.

PHP memberi tahu saya bahwa pemisahan sudah usang, apa metode alternatif yang harus saya gunakan?

explode adalah alternatif. Namun, jika Anda bermaksud memecah ekspresi reguler, alternatifnya adalah preg_split.

split tidak digunakan lagi karena merupakan bagian dari rangkaian fungsi yang menggunakan ekspresi reguler POSIX; bahwa seluruh keluarga tidak digunakan lagi karena fungsi PCRE (preg_*). 

Jika Anda tidak memerlukan fungsi ekspresi reguler, maka explode adalah pilihan yang sangat baik (dan akan direkomendasikan lebih dari split bahkan jika itu tidak ditinggalkan), jika di sisi lain Anda perlu menggunakan ekspresi reguler maka alternatif PCRE hanyalah preg_split .

  • preg_split jika Anda perlu membagi dengan ekspresi reguler. 
  • str_split jika Anda perlu dibagi dengan karakter. 
  • explode jika Anda perlu dibagi dengan sesuatu yang sederhana.

Juga untuk masa depan, jika Anda ingin tahu apa yang PHP ingin Anda gunakan jika ada sesuatu yang sudah ketinggalan zaman, Anda selalu dapat memeriksa function dalam manual dan itu akan memberi tahu Anda alternatif.

Saya ingin menjelaskan di sini bahwa preg_split(); jauh dari itu tetapi explode(); dapat digunakan dengan cara yang sama seperti split();

berikut ini adalah perbandingan antara penggunaan split(); dan explode();

Bagaimana split () digunakan

<?php

$date = "04/30/1973";
list($month, $day, $year) = split('[/.-]', $date);
echo $month; // foo
echo $day; // *
echo $year;

?>

URL: http://php.net/manual/en/function.split.php

Bagaimana explode () dapat digunakan

<?php

$data = "04/30/1973";
list($month, $day, $year) = explode("/", $data);
echo $month; // foo
echo $day; // *
echo $year;

?>

URL: http://php.net/manual/en/function.explode.php

Inilah cara kami menggunakannya :)

Anda dapat menggunakan fungsi preg_match yang lebih mudah sebagai gantinya, Lebih baik dan lebih cepat dari yang lainnya.

$var = "<tag>Get this var</tag>";
preg_match("/<tag>(.*)<\/tag>/", $var , $new_var);
echo $new_var['1']; 

Output: Get this var

Ya, saya akan menggunakan meledak atau Anda dapat menggunakan:

preg_split

Yang merupakan metode yang disarankan dengan PHP 6 . preg_split Documentation

Punya masalah yang sama, tetapi kode saya harus bekerja pada keduanya PHP 5 & PHP 7 .. 

Ini adalah bagian dari kode saya, yang menyelesaikan masalah ini .. Masukkan tanggal dalam format dmY dengan salah satu pembatas "/. -"

<?php
function DateToEN($date){
  if ($date!=""){
    list($d, $m, $y) = function_exists("split") ?  split("[/.-]", $date) : preg_split("/[\/\.\-]+/", $date);
    return $y."-".$m."-".$d;
  }else{
    return false;
  }
}
?>

Jika Anda ingin membagi string menjadi kata-kata, Anda dapat menggunakan explode () atau str_Word_count ().

preg_quote() adalah apa yang Anda cari:

Deskripsi

string preg_quote ( string $str [, string $delimiter = NULL ] )

preg_quote () mengambil str dan meletakkan backslash di depan setiap karakter yang merupakan bagian dari sintaks ekspresi reguler. Ini berguna jika Anda memiliki string run-time yang harus Anda cocokkan dalam beberapa teks dan string mungkin berisi karakter regex khusus.

Karakter ekspresi reguler khusus adalah: . \ + * ? [ ^ ] $ ( ) { } = ! < > | : -

Parameter

str

String input.

pembatas

Jika pembatas opsional ditentukan, itu juga akan lolos. Ini berguna untuk keluar dari pembatas yang diperlukan oleh fungsi PCRE./Adalah pembatas yang paling umum digunakan.

Yang penting, perhatikan bahwa jika argumen $delimiter Tidak ditentukan, pembatas - karakter yang digunakan untuk melampirkan regex Anda, biasanya garis miring (/) - tidak akan melarikan diri. Anda biasanya ingin melewati pembatas apa pun yang Anda gunakan dengan regex Anda sebagai argumen $delimiter.

Contoh - menggunakan preg_match Untuk menemukan kemunculan URL yang diberikan dikelilingi oleh spasi:

$url = 'http://stackoverflow.com/questions?sort=newest';

// preg_quote escapes the dot, question mark and equals sign in the URL (by
// default) as well as all the forward slashes (because we pass '/' as the
// $delimiter argument).
$escapedUrl = preg_quote($url, '/');

// We enclose our regex in '/' characters here - the same delimiter we passed
// to preg_quote
$regex = '/\s' . $escapedUrl . '\s/';
// $regex is now:  /\shttp\:\/\/stackoverflow\.com\/questions\?sort\=newest\s/

$haystack = "Bla bla http://stackoverflow.com/questions?sort=newest bla bla";
preg_match($regex, $haystack, $matches);

var_dump($matches);
// array(1) {
//   [0]=>
//   string(48) " http://stackoverflow.com/questions?sort=newest "
// }