You can easily simplify your regex to be this:
(?:([a-z]{2,})_)?(\d+)_([a-z]{2,}\d+)_(\d+)$ ^ ^^ |--------------|| | first group ||- quantifier for 0 or 1 time (essentially making it optional)
I’m not sure whether the input string without the first group will have the underscore or not, but you can use the above regex if it’s the whole string.
As you can see, the matched group 1 in the second match is empty and starts at matched group 2.
Related Posts:
- What is a non-capturing group in regular expressions?
- What is a non-capturing group in regular expressions?
- Regex optional capturing group?
- OR condition in Regex
- Using or ‘|’ in regex [duplicate]
- What is a Context Free Grammar?
- How can I validate an email address using a regular expression?
- Regular expression to match a line that doesn’t contain a word
- Difference between \b and \B in regex
- What does the regex \S mean in JavaScript?
- How can I validate an email address using a regular expression?
- 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
- 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 Expressions: Is there an AND operator?
- Writing a very simple lexical analyser in C++
- Regular Expression.how to add optional character at end of regex
- Regular Expression with wildcards to match any character
- Split string on whitespace in Python
- How to use Regular Expressions (Regex) in Microsoft Excel both in-cell and loops
- 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
- How to replace ” \ ” with ” \\ ” in java
- A regular expression to exclude a word/string
- Regex how to match an optional character
- 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?
- Using the star sign in grep
- Question marks in regular expressions
- Difference between \w and \b regular expression meta characters
- 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?
- javascript HTML from document.body.innerHTML
- Which regular expression operator means ‘Don’t’ match this character?
- How can I write a regex which matches non greedy?
- Regex Explanation ^.*$ [duplicate]
- 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?
- Regex match everything after question mark?
- Validating IPv4 addresses with regexp
- Validate phone number with JavaScript
- 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
- 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
- Regex Match all characters between two strings
- Regular expression to match a word or its prefix
- Regular expressions in C: examples?
- How to ignore whitespace in a regular expression subject string?
- Regular expression for a string that does not start with a sequence
- Regex: matching up to the first occurrence of a character
- python regular expression “\1”
- Regular expression – starting and ending with a character string
- Regular expression to stop at first match
- /bb|[^b]{2}/ how does it work?
- How do I match any character across multiple lines in a regular expression?
- Regular expression to remove HTML tags from a string
- 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 to validate date formats dd/mm/YYYY, dd-mm-YYYY, dd.mm.YYYY, dd mmm YYYY, dd-mmm-YYYY, dd/mmm/YYYY, dd.mmm.YYYY with Leap Year Support
- Regex difference: (\w+)? and (\w*)
- Wrap element with in any number of elements with PHP
- 404 regular-expression advice needed
- How to use a variable as a className inside preg_match_all parameters?
- 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
- Remove Custom HTML Posts Using Regex
- Regexes allow only [a-z][A-Z][0-9] and –
- Call Shortcode Attribute Value within another function
- How to fix old embeded iframes with WP-CLI search-replace
- Use Regex Redirection via htsaccess for RSS Feeds WordPress