Ask Your Question
3

In PHP, how can I count the number of times "test" appears in a string, but excluded cases where it is followed by "123" or "abc"?

asked 2021-05-24 11:00:00 +0000

bukephalos gravatar image

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
2

answered 2023-04-07 01:00:00 +0000

huitzilopochtli gravatar image

You can use regular expressions to achieve this. Here's an example:

$string = "This is a test string. It contains multiple test cases, but some are excluded like test123 or testabc.";

$count = preg_match_all("/\btest\b(?!(123|abc))/i", $string, $matches);

echo "The word 'test' appears $count times in the string.";

// Output: The word 'test' appears 2 times in the string.

Explanation:

  • preg_match_all() function is used to match all occurrences of a pattern in a string.
  • /.../i is a regular expression pattern delimiters. The i flag makes the pattern case-insensitive.
  • \b is a word boundary anchor that matches the transition between a word character (as defined by \w) and a non-word character (as defined by \W).
  • test matches the word "test" exactly.
  • (?!(123|abc)) is a negative lookahead assertion that matches any position that is not immediately followed by "123" or "abc".
  • The preg_match_all() function returns the number of matches found in the string, which is stored in $count.
edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account. This space is reserved only for answers. If you would like to engage in a discussion, please instead post a comment under the question or an answer that you would like to discuss

Add Answer


Question Tools

Stats

Asked: 2021-05-24 11:00:00 +0000

Seen: 9 times

Last updated: Apr 07 '23