"a <a bc> de" # TRUE
"a <<a bc>> de" # TRUE
"a <a bc> >de" # TRUE
"a <<a bc> de" # TRUE
"a < a bc> de" # FALSE
"a <a bc > de" # FALSE
"a <<a bc >> de" # FALSE
"a <a bc >> de" # FALSE
I tried the following one :
regex = "< \S.*\S]> "
CodePudding user response:
Converting my comment to answer so that solution is easy to find for future visitors.
You may use this regex:
< [^\s<](?:[^<>]*[^\s<>])?>
RegEx Breakup:
<
: Match 1 of<
characters[^\s<]
: Match any char that is not a whitespace and not a<
(?:
: Start non-capture group[^<>]*
: Match 0 or more of any char that is not<
and>
[^\s<>]
: Match any char that is not a whitespace and not<
and>
)?
: End non-capture group.?
makes this group optional>
: Match 1 of>
characters