@ in PHP regular expressions












0















I found this script for password validation, but I don't know, why is "@" inside patterns. Can you explain me it? Thanks



                $uppercase = preg_match('@[A-Z]@', $_POST['password']);
$lowercase = preg_match('@[a-z]@', $_POST['password']);
$number = preg_match('@[0-9]@', $_POST['password']);

if (!$uppercase || !$lowercase || !$number || strlen($_POST['password']) < 8)
{
$message .= "Password must contains lowercase letter, uppercase letter, digit and minimal length is 8 characters. <br/>";
}









share|improve this question























  • php.net/manual/en/regexp.reference.delimiters.php

    – Paul
    Jan 2 at 17:56











  • Possible duplicate of stackoverflow.com/questions/2892749/…

    – Nigel Ren
    Jan 2 at 17:57






  • 1





    I don't agree with it, but they are using the @ for delimiters instead of / for example

    – ArtisticPhoenix
    Jan 2 at 17:57













  • @, /, -, %, ` these are all delimiters. which represents the start and end of regex expression.

    – Zia Ur Rehman
    Jan 2 at 17:57











  • Technically you can use anything that is not alpha numeric can be a delimiter, including things that have meaning in regex, such as . or + or | etc. Sandbox

    – ArtisticPhoenix
    Jan 2 at 18:02


















0















I found this script for password validation, but I don't know, why is "@" inside patterns. Can you explain me it? Thanks



                $uppercase = preg_match('@[A-Z]@', $_POST['password']);
$lowercase = preg_match('@[a-z]@', $_POST['password']);
$number = preg_match('@[0-9]@', $_POST['password']);

if (!$uppercase || !$lowercase || !$number || strlen($_POST['password']) < 8)
{
$message .= "Password must contains lowercase letter, uppercase letter, digit and minimal length is 8 characters. <br/>";
}









share|improve this question























  • php.net/manual/en/regexp.reference.delimiters.php

    – Paul
    Jan 2 at 17:56











  • Possible duplicate of stackoverflow.com/questions/2892749/…

    – Nigel Ren
    Jan 2 at 17:57






  • 1





    I don't agree with it, but they are using the @ for delimiters instead of / for example

    – ArtisticPhoenix
    Jan 2 at 17:57













  • @, /, -, %, ` these are all delimiters. which represents the start and end of regex expression.

    – Zia Ur Rehman
    Jan 2 at 17:57











  • Technically you can use anything that is not alpha numeric can be a delimiter, including things that have meaning in regex, such as . or + or | etc. Sandbox

    – ArtisticPhoenix
    Jan 2 at 18:02
















0












0








0








I found this script for password validation, but I don't know, why is "@" inside patterns. Can you explain me it? Thanks



                $uppercase = preg_match('@[A-Z]@', $_POST['password']);
$lowercase = preg_match('@[a-z]@', $_POST['password']);
$number = preg_match('@[0-9]@', $_POST['password']);

if (!$uppercase || !$lowercase || !$number || strlen($_POST['password']) < 8)
{
$message .= "Password must contains lowercase letter, uppercase letter, digit and minimal length is 8 characters. <br/>";
}









share|improve this question














I found this script for password validation, but I don't know, why is "@" inside patterns. Can you explain me it? Thanks



                $uppercase = preg_match('@[A-Z]@', $_POST['password']);
$lowercase = preg_match('@[a-z]@', $_POST['password']);
$number = preg_match('@[0-9]@', $_POST['password']);

if (!$uppercase || !$lowercase || !$number || strlen($_POST['password']) < 8)
{
$message .= "Password must contains lowercase letter, uppercase letter, digit and minimal length is 8 characters. <br/>";
}






php regex validation






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Jan 2 at 17:53









adamadam

236




236













  • php.net/manual/en/regexp.reference.delimiters.php

    – Paul
    Jan 2 at 17:56











  • Possible duplicate of stackoverflow.com/questions/2892749/…

    – Nigel Ren
    Jan 2 at 17:57






  • 1





    I don't agree with it, but they are using the @ for delimiters instead of / for example

    – ArtisticPhoenix
    Jan 2 at 17:57













  • @, /, -, %, ` these are all delimiters. which represents the start and end of regex expression.

    – Zia Ur Rehman
    Jan 2 at 17:57











  • Technically you can use anything that is not alpha numeric can be a delimiter, including things that have meaning in regex, such as . or + or | etc. Sandbox

    – ArtisticPhoenix
    Jan 2 at 18:02





















  • php.net/manual/en/regexp.reference.delimiters.php

    – Paul
    Jan 2 at 17:56











  • Possible duplicate of stackoverflow.com/questions/2892749/…

    – Nigel Ren
    Jan 2 at 17:57






  • 1





    I don't agree with it, but they are using the @ for delimiters instead of / for example

    – ArtisticPhoenix
    Jan 2 at 17:57













  • @, /, -, %, ` these are all delimiters. which represents the start and end of regex expression.

    – Zia Ur Rehman
    Jan 2 at 17:57











  • Technically you can use anything that is not alpha numeric can be a delimiter, including things that have meaning in regex, such as . or + or | etc. Sandbox

    – ArtisticPhoenix
    Jan 2 at 18:02



















php.net/manual/en/regexp.reference.delimiters.php

– Paul
Jan 2 at 17:56





php.net/manual/en/regexp.reference.delimiters.php

– Paul
Jan 2 at 17:56













Possible duplicate of stackoverflow.com/questions/2892749/…

– Nigel Ren
Jan 2 at 17:57





Possible duplicate of stackoverflow.com/questions/2892749/…

– Nigel Ren
Jan 2 at 17:57




1




1





I don't agree with it, but they are using the @ for delimiters instead of / for example

– ArtisticPhoenix
Jan 2 at 17:57







I don't agree with it, but they are using the @ for delimiters instead of / for example

– ArtisticPhoenix
Jan 2 at 17:57















@, /, -, %, ` these are all delimiters. which represents the start and end of regex expression.

– Zia Ur Rehman
Jan 2 at 17:57





@, /, -, %, ` these are all delimiters. which represents the start and end of regex expression.

– Zia Ur Rehman
Jan 2 at 17:57













Technically you can use anything that is not alpha numeric can be a delimiter, including things that have meaning in regex, such as . or + or | etc. Sandbox

– ArtisticPhoenix
Jan 2 at 18:02







Technically you can use anything that is not alpha numeric can be a delimiter, including things that have meaning in regex, such as . or + or | etc. Sandbox

– ArtisticPhoenix
Jan 2 at 18:02














1 Answer
1






active

oldest

votes


















2














In many regex libraries, the "delimiter" is actually completely up to the programmer, and totally arbitrary. Basically, whatever the first char in the pattern is, that's the delimiter and when it shows up again (unescaped) the pattern is considered complete (optionally with some flags following the closing delimiter).



You can consider it a matter of programmer style/taste, or maybe they got in the habit on a project where the patterns needed / in the pattern and they didn't want to escape them all the time.






share|improve this answer
























  • Thanks for answer.

    – adam
    Jan 2 at 18:20












Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54010949%2fin-php-regular-expressions%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









2














In many regex libraries, the "delimiter" is actually completely up to the programmer, and totally arbitrary. Basically, whatever the first char in the pattern is, that's the delimiter and when it shows up again (unescaped) the pattern is considered complete (optionally with some flags following the closing delimiter).



You can consider it a matter of programmer style/taste, or maybe they got in the habit on a project where the patterns needed / in the pattern and they didn't want to escape them all the time.






share|improve this answer
























  • Thanks for answer.

    – adam
    Jan 2 at 18:20
















2














In many regex libraries, the "delimiter" is actually completely up to the programmer, and totally arbitrary. Basically, whatever the first char in the pattern is, that's the delimiter and when it shows up again (unescaped) the pattern is considered complete (optionally with some flags following the closing delimiter).



You can consider it a matter of programmer style/taste, or maybe they got in the habit on a project where the patterns needed / in the pattern and they didn't want to escape them all the time.






share|improve this answer
























  • Thanks for answer.

    – adam
    Jan 2 at 18:20














2












2








2







In many regex libraries, the "delimiter" is actually completely up to the programmer, and totally arbitrary. Basically, whatever the first char in the pattern is, that's the delimiter and when it shows up again (unescaped) the pattern is considered complete (optionally with some flags following the closing delimiter).



You can consider it a matter of programmer style/taste, or maybe they got in the habit on a project where the patterns needed / in the pattern and they didn't want to escape them all the time.






share|improve this answer













In many regex libraries, the "delimiter" is actually completely up to the programmer, and totally arbitrary. Basically, whatever the first char in the pattern is, that's the delimiter and when it shows up again (unescaped) the pattern is considered complete (optionally with some flags following the closing delimiter).



You can consider it a matter of programmer style/taste, or maybe they got in the habit on a project where the patterns needed / in the pattern and they didn't want to escape them all the time.







share|improve this answer












share|improve this answer



share|improve this answer










answered Jan 2 at 17:58









Chris TraheyChris Trahey

17.1k13251




17.1k13251













  • Thanks for answer.

    – adam
    Jan 2 at 18:20



















  • Thanks for answer.

    – adam
    Jan 2 at 18:20

















Thanks for answer.

– adam
Jan 2 at 18:20





Thanks for answer.

– adam
Jan 2 at 18:20




















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54010949%2fin-php-regular-expressions%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

MongoDB - Not Authorized To Execute Command

in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith

How to fix TextFormField cause rebuild widget in Flutter