Please enable JavaScript to use this web application.
Regular
Expressions
101
Social
Donate
Info
Regex Editor
Community Patterns
Account
Regex Quiz
Settings
Order By
Most Recent
Most upvotes
Most downvotes
Highest Score
Lowest Score
Filter by Flavor
PCRE2 (PHP >=7.3)
PCRE (PHP <7.3)
ECMAScript (JavaScript)
Python
Golang
Java 8
.NET 7.0 (C#)
Rust
Sponsors
There are currently no sponsors.
Become a sponsor today!
Community Patterns
Search among 15,000 community submitted regex patterns...
There does not seem to be anything here
Community Library Entry
1
Regular Expression
PCRE (PHP <7.3)
/
(
\[
(?:
[^
[
\]
]
*
?
)
\]
\s
*
?
(?=
\[
)
)
|
(
\[
(?:
[^
[
\]
]
*
?
)
\]
(?!
\s
*
[
\|
&
]
\s
*
.
)
)
|
(?:
\[
[^
[
\]
]
*
?
]
)
|
(
[^
&
\|
\s
]
+
)
\s
+
(?=
[^
&
\|
\s
]
+
)
/
g
Open regex in editor
Description
/**
this regex should match most cases where the user forgets to put an operator somewhere and add an OR, it still
does not handle nested square brackets but those are invalid anyways
this page has an explanation
https://regex101.com/r/fF7wO1/2
the way this regex grabs conflicting matches is by oring different cases together in the order we want to grab them in
the first case is for a set of brackets immediately followed by an opening bracket (seperate them with an or)
the second case is for a set of brackets immediately followed by any non operator character (seperate with an or)
the third case is for a set of brackets followed by an operator (do nothing)
the final case is for two words outside of brackets seperated by a space (fill space with an or)
@type {RegExp} */
Submitted by
warnock
-
9 years ago