The confusion stems from your thinking \b
matches spaces (probably because “b” suggests “blank”).
\b
matches the empty string at the beginning or end of a word. \B
matches the empty string not at the beginning or end of a word. The key here is that “-” is not a part of a word. So <left>-<right>
matches \b-\b
because there are word boundaries on either side of the -
. On the other hand for <left> - <right>
(note the spaces), there are not word boundaries on either side of the dash. The word boundaries are one space further left and right.
On the other hand, when searching for \bcat\b
word boundaries behave more intuitively, and it matches ” cat ” as expected.
Related Posts:
- OR condition in Regex
- What is a Context Free Grammar?
- What does \’.- mean in a Regular Expression
- How can I exclude one word with grep?
- How can I validate an email address using a regular expression?
- Regular expression to match a line that doesn’t contain a word
- Regex: ignore case sensitivity
- Python regex AttributeError: ‘NoneType’ object has no attribute ‘group’
- Regular Expression for alphanumeric and underscores
- What is the difference between the regular expressions [^\d\s] and [\D\S]
- Regular Expression for alphanumeric and underscores
- grep –ignore-case –only
- Regex AND operator
- python re.split() to split by spaces, commas, and periods, but not in cases like 1,000 or 1.50
- python re.split() to split by spaces, commas, and periods, but not in cases like 1,000 or 1.50
- Regex to test if string begins with http:// or https://
- Regular expression negative lookahead
- Regular Expression to match string starting with a specific word
- Regular Expressions: Is there an AND operator?
- Writing a very simple lexical analyser in C++
- Regular expression to match standard 10 digit phone number
- Regular Expression.how to add optional character at end of regex
- Regular Expression with wildcards to match any character
- What is a non-capturing group in regular expressions?
- How to validate an email address in PHP
- What is a non-capturing group in regular expressions?
- Regular expression to match standard 10 digit phone number
- How to use Regular Expressions (Regex) in Microsoft Excel both in-cell and loops
- Python string.replace regular expression
- How to use Regular Expressions (Regex) in Microsoft Excel both in-cell and loops
- Python string.replace regular expression
- Symbol for any number of any characters in regex?
- Grep and Python
- Regex – Does not contain certain Characters
- How to replace ” \ ” with ” \\ ” in java
- A regular expression to exclude a word/string
- Regex how to match an optional character
- How to validate an email address in JavaScript
- Using Bash regex match (=~) where regex includes quotes (” characters)
- Searching for UUIDs in text with regex
- Regular expression to match a word or its prefix
- How can I remove punctuation from input text in Java?
- Regular expression for exact match of a string
- Using the star sign in grep
- Regex optional group
- Regex for string contains?
- Regular Expression – Validate Gmail addresses
- Java; String replace (using regular expressions)?
- How can I remove punctuation from input text in Java?
- How can I output only captured groups with sed?
- How to negate specific word in regex?
- What is the grep equivalent in Python?
- javascript HTML from document.body.innerHTML
- Which regular expression operator means ‘Don’t’ match this character?
- Python re.split() vs split()
- Negative matching using grep (match lines that do not contain foo)
- How to exclude a specific string constant?
- How to replace a whole line with sed?
- Validating IPv4 addresses with regexp
- How to validate phone number using PHP?
- Validate phone number with JavaScript
- Can a URL contain a semicolon and still be valid?
- How is \\n and \\\n interpreted by the expanded regular expression?
- Regex to match only uppercase “words” with some exceptions
- Regular Expression to reformat a US phone number in Javascript
- Regex to match only letters
- Regex optional capturing group?
- Finding the complement of a DFA?
- RegEx to find two or more consecutive chars
- RE error: illegal byte sequence on Mac OS X
- Regex to match an optional ‘+’ symbol followed by any number of digits
- Regular expressions in C: examples?
- How to ignore whitespace in a regular expression subject string?
- Regex: matching up to the first occurrence of a character
- Regex credit card number tests
- Regular expression – starting and ending with a character string
- How do I match any character across multiple lines in a regular expression?
- Regular expression to limit number of characters to 10
- Regex that matches integers in between whitespace or start/end of string only
- Regular Expressions- Match Anything
- What is the difference between square brackets and parentheses in a regex?
- My Vim replace with a regex is throwing a `E488: Trailing characters`
- Regex for “AND NOT” operation
- Regular expression that matches valid IPv6 addresses
- Escaping Parentheses in Regex
- How to replace a string in an existing file in Perl
- What is the best regular expression to check if a string is a valid URL?
- Regex empty string or email
- Regex difference: (\w+)? and (\w*)
- Wrap element with in any number of elements with PHP
- extract shortcodes from string
- preg_replace and comment_form_defaults
- How to set up redirects for category paginated pages after adding /category/ to permalink
- Adding span tags to post titles using regex
- Redirect non www to www using redirection plugin regex
- Restrict comments with regular expression
- Call Shortcode Attribute Value within another function
- How to fix old embeded iframes with WP-CLI search-replace
- Regex For Extracting First 4 letters of search term
- Use Regex Redirection via htsaccess for RSS Feeds WordPress