Home > Article > Backend Development > PHP how to get the length of the starting substring that does not match the mask
php editor Banana will introduce you how to get the length of the starting substring of the non-matching mask. In PHP, you can use the preg_match function combined with regular expressions to achieve this function. First, use a regular expression to match unwanted characters, then get the matching position through the preg_match function, and finally calculate the length of the starting substring. This makes it easy to implement the function of getting the starting substring length of a non-matching mask.
Question: How to get the length of the starting substring of the non-matching mask in PHP
solution:
Use the preg_match()
function, which returns the length of the substring that matches the regular expression. By using the negative lookahead assertion (?!)
, you can match substrings that do not match the specified mask.
Code example:
$subject = "This is a test string"; $mask = "/(t.*)/"; $pattern = "/^(?:(?!$mask).)*$/"; preg_match($pattern, $subject, $matches); $length = strlen($matches[0]);
explain:
preg_match()
Function checks whether the given string $subject
matches the regular expression $pattern
. $pattern
Regular expression: ^
: Anchor the beginning of the string. (?:...)*
: Matches zero or more occurrences of any character that does not match the subpattern (...). (?!$mask)
: Negate the lookahead assertion, ensuring that $mask
is not matched. $
: Anchor the end of the string. $matches
Array contains matches, where $matches[0]
is the starting substring of the non-matching mask. strlen($matches[0])
Returns the length of the substring. Additional information:
$mask
is valid. strspn()
function as an alternative, which counts the number of characters until the first matching character is found. Full code example using strspn()
:
$subject = "This is a test string"; $mask = "t"; $length = strspn($subject, $mask, 0, strlen($subject) - 1);
advantage:
strspn()
More efficient for long strings. shortcoming:
The above is the detailed content of PHP how to get the length of the starting substring that does not match the mask. For more information, please follow other related articles on the PHP Chinese website!