Jeżeli coś jest wartego uwagi a nie jest to materiał na pełnoprawnwgo posta na blogu to będę starać się to umieszczać w tym miejscu.
- Szukasz po tagu: wyrazenia regularne
- Ilość rekordów w bazie: 17
preg replace lub
$posCode = preg_replace('/^(CCC|Halfprice)\s/', '', trim($result[0]));
regex z cudzysłowiami
link^(?:[a-ząćęłńóśźż0-9,\/."()+_;\-\s''\\]|")+$
regex test
#(<span class="pin_code_to_mask">.).*?(.</span>)#
Regex z forum
<?php
$regex = '/\d(\.\d{1,2})+/';
$inputs = [
'1.1',
'1.11',
'1.11.1'
];
foreach( $inputs as $input ) {
$matches = [];
preg_match( $regex, $input, $matches );
var_dump( $matches );
}
Zamiana klucza w json
/**
* replace user agent in text to user agent from actual environment
*
* @param string $text
*
* @return string
*/
private function replaceUserAgent(string $text): string {
$client = new Client();
$userAgent = str_replace('/', '\/', ($client->getConfig('headers')['User-Agent']));
$result = preg_replace('/"user_agent":"(Guzzle[A-Za-z0-9 . \/\\\]*)"/', '"user_agent":"' . $userAgent . '"', $text);
//or $result = preg_replace('/"user_agent":"GuzzleHttp(.*)"/', '"user_agent":"' . $userAgent . '"', $text);
//. kropka - dowolny znak * oznacza dowolną ilosc razy bez gwiazdki brało by pod uwagę tylko pierwszy znak.
return $result;
}
zamiana na kropki wszystkich / z pominięciem pierwszego
<?php
$str = '6/3/2';
$res_str = array_chunk(explode("/",$str),2);
foreach( $res_str as &$val){
$val = implode("/",$val);
}
echo implode(".",$res_str);
//6/3.2
Usunięcie wszystkich znaków oprócz liter, liczb i spacji
return preg_replace('/[^\d a-zA-ZĄąĘęÓóĆ棳ŃńŚśŹźŻż]/', '', $value);
\d - to dowoalna liczba naturalna
Parser pobierający dane między dwoma nazwisami
<?php
class InputsParser {
/**
* @param string $content
* @return array
*/
public static function initParser($content) {
$inputsArray = [];
//get all between [] to array
preg_match_all('@\[\s*input .*?\]@', $content, $inputsArray);
return $inputsArray;
}
}
Tylko litery i spacje
if (!preg_match("@^[a-zA-ZĄąĘęÓóĆ棳ŃńŚśŹźŻż\s]+$@", $value)) {
$this->errorMessage = 'Name must only contain letters!';
}
Wzór wystapnia na końcu stringa
// create a string
$string = 'abcdefghijklmnopqrstuvwxyz0123456789.pl';
// try to match our pattern at the end of the string
if(preg_match("/.pl\z/i", $string))
{
// if our pattern matches we echo this
echo 'The string ends with .pl';
}
else
{
// if no match is found we echo this line
echo 'No match found';
}
https://www.phpro.org/tutorials/Introduction-to-PHP-Regex.html
Operatory w wyrażeniach regularnych
\s\S = ???? dowolny znak 26.07.2019
. - kropka symbolizuje dowolny znak (za wyjątkiem przełamania linii).
\d - dowolna cyfra dziesiętna
\D - dowolny znak niebędący cyfrą
\s - biały znak (np. spacja, tabulator)
^ - Początek linii
$ - Koniec linii
\b (PCRE) - Znak wyrazu pomiędzy znakiem wyrazu a pomiędzy znakiem niewyrazu, czyli pomiędzy \w\W lub \W\w
\B (PCRE) -Wszystko to, czego nie dopasowuje \b
* - dowolną ilośc razy
Wyrażenie regularne czy pole zawiera 0 lub 1 i ma długość 4
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form action="ostatniprzyklad.php" method="post">
<input type="text" name="pole">
<input type="submit" value="wyslij">
</form>
<?php
if (preg_match('@^[01]{4}$@', $_POST['pole'])) {
echo ('ok');
} else {
echo ('error');
}
?>
</body>
</html>
Wyrażenie regularne negacja zawartości
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form action="ostatninegacje.php" method="post">
<input type="text" name="pole">
<input type="submit" value="wyslij">
</form>
<?php
if (preg_match('@^[^a-z]+$@', $_POST['pole'])) {//+oznacza minimum jeden raz(min jedne znak)
echo ('ok');
} else {
echo ('error');
}
?>
</body>
</html>
Walidacja imienia i nazwiska z dużej litery i od 2 do 10 znaków wyrażenia regularne
<!DOCTYPE html>
<html>
<head>
<title>Walidacja imienia i nazwiska z dużej litery i od 2 do 10 znaków </title>
</head>
<body>
<form action="imieinazwisko.php" method="post">
<input type="text" name="pole">
<input type="submit" value="wyslij">
</form>
<?php
if (preg_match('@^[A-Z][a-z]{2,10} [A-Z][a-z]{2,10}$@', $_POST['pole'])) {
echo 'ok';
} else {
echo 'error';
}
?>
</body>
</html>
Wyrażenia regularne czy pole zawiera liczbę
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form action="jedenhaslocyfra.php" method="post">
<input type="text" name="pole">
<input type="submit" value="wyslij">
</form>
<?php
if (preg_match('@[0-9]@', $_POST['pole'])) {
echo ('ok');
} else {
echo ('error');
}
?>
</body>
</html>
Wyrażenia regularne walidacja kodu pocztowego
<!DOCTYPE html>
<html>
<head>
<title>Wyrażenia regularne walidacja kodu pocztowego</title>
</head>
<body>
<form action="dwa pesel elegancko.php" method="post">
<input type="text" name="pole">
<input type="submit" value="wyslij">
</form>
<?php
if (preg_match('@^[0-9]{2}-[0-9]{3}$@', $_POST['pole'])) {
echo ('ok');
} else {
echo ('error');
}
?>
</body>
</html>
Wyrażenia regularne walidacja kodu pocztowego ale mało elegancko
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Walidacja pesla ale mało elegancko :]</title>
</head>
<body>
<?php
if (preg_match('@^[0-9][0-9]-[0-9][0-9][0-9]$@', $_POST['pole'])) {
echo 'ok';
} else {
echo 'error';
}
?>
<form action="pierwsze pesel ale chamsko.php" method="post">
<input type="text" name="pole">
<input type="submit">
</form>
</body>
</html>