Regex: Match NOT curved or square bracket - regex

This isn't matching. I want to match a string of characters that are not ] or ).
I used this regular expression, but it isn't matching '[^\\)\\]]+'
I'm sure its simple, but, help please :)
Working in R:
gsub('[\\(\\[]{1}[^\\)\\]]+[\\)\\]]{1}','','JOSH [IS MY NAME]')
Does not match anything. I want it to remove the data between the square brackets.

The regex would be
\\[[^\\[\\]]+\\]
This would replace anything within brackets..replace it with []

AH.
I had to set perl=TRUE argument and it worked.
All better thanks guys!

Related

regex expression to find words with 0

Please provide a regex expression to find words with 0 like 'A0lytics', 'Alter0tive Medicine'.
But, it should not match words like 'Enterprise 2.0'
If you have this list of words: ["A0lytics", "0tics", "Alter0tive Medicine", "Enterprise 2.0"]
\w+0\w+ will capture "A0lytics" and "Alter0tive" (not "Alter0tive Medicine")
^[A-Za-z][A-Za-z0]+(?: +[A-Za-z][A-Za-z0]+)*$ will match "A0lytics" and "Alter0tive Medicine"
(?<!\.)([a-zA-Z]*)0([a-zA-Z]*) will match "A0lytics", "0tics" and "Alter0tive Medicine" (if you can use the negative lookbehind).
Good luck.
You can use:
^[A-Za-z][A-Za-z0]+(?: +[A-Za-z][A-Za-z0]+)*$
Demo: https://regex101.com/r/gJ5ugU/2
\w+0\w+
is it useful?
You can test online regular expressions with this.

How to build this regular expression?

Sample: AAAATGCCCTAAGGGATGTTTTAGAAA
I want to capture all string with these criteria:
Start: ATG
Follow by 3x characters of sets: A or C or G or T
End: TAA or TAG or TGA
Such as: ATGCCCTAA, ATGTTTTAG
I had a regular expression here: /[ACGT]*((ATG)(([ACGT]){3})+(TAA|TAG|TGA))[ACGT]*/g, but it only match the last ATGTTTTAG not ATGCCCTAA. I don't know why ?
Please help me write pattern that match both ATGCCCTAA and ATGTTTTAG.
Here is online example:
https://regex101.com/r/iO8lF9/1
This regex works well /(ATG(?:A{3}|C{3}|G{3}|T{3})(?:TAA|TAG|TGA))/g
as you can see here: https://www.regex101.com/r/gZ0zA9/2
I hope it helps
Using back-reference you can shorten your regex as this:
ATG([AGCT])\1{2}(?:TGA|TA[AG])
RegEx Demo
It matches [AGCT] after ATG and groups it as captured group #1. Next we match \1{2} to make sure same letter is repeated 3 times.
try...
^ATG[AGCT]{3}(TAA|TAG|TGA)$
I use this pattern and it works, thank all you for helping me.
/(ATG(:?A{3}|C{3}|G{3}|T{3})(:?TAA|TAG|TGA))/g

Regular expression to find a same consecutive words

I'm a newbie to regular expressions and i have a problem in identifying the same consecutive words using regular expression. below is the scenario.
Here is the data :
;af;aj;am;an;ao;ap12;aq123;ar;as;ad;af1223;
and my current regular expression is (;[a-z][a-z];) and it only matches the below sets ;af; , ;am; , ;ao; , ;ar; , ;ad; but my expectation is to match all these sets. ;af;aj;am;an;ao; & ;ar;as;ad;.
Could guys please guide me how to match these patterns?
It seems like your trying to extract the substrings which are in this ;[a-z][a-z]; format. If yes, then you could simply put your regex inside a lookahead to do a overlapping match.
(?=(;[a-z][a-z];))
DEMO
(;[a-z][a-z](?=;))
Try this.This returns the group you are looking for though its not clear how they are same.
The reason why urs was not working wass due to that fact (;[a-z][a-z];) doesnt leave a ; for the next element to start with.So it is not able to match as there is no ; in front of it.A lookahead assertion doesnt cosume ; thereby enabling all matches.
See demo.
http://regex101.com/r/tF4jD3/4

Find first point with regex

I want a regex which return me only characters before first point.
Ex :
T420_02.DOMAIN.LOCAL
I want only T420_02
Please help me.
You can use the following regex: ^(.*?)(?=\.)
The captured group contains what you need (T420_02 in your example).
This simple expression should do what you need, assuming you want to match it at the beginning of the string:
^(.+?)\.
The capture group contains the string before (but not including) the ..
Here's a fiddle: http://www.rexfiddle.net/s8l0bn3
Use regex pattern ^[^.]+(?=[.])

Vim/Perl Regex Tag Match Problem

I have data that looks like this:
[Shift]);[Ctrl][Ctrl+S][Left mouse-click][Backspace][Ctrl]
I want to find all [.*] tags that have the word mouse in them. Keeping in mind non-greedy specifiers, I tried this in Vim: \[.\{-}mouse.\{-}\], but this yielded this result,
[Shift]);[Ctrl][Ctrl+S][Left mouse-click]
Rather than just the desired,
[Left mouse-click]
Any ideas? Ultimately I need this pattern in Perl syntax as well, so if anyone has a solution in Perl that would also be appreciated.
\[[^]]*mouse[^[]*\]
That is, match a literal opening bracket, then any number of characters that aren't closing brackets, then "mouse," then any number of non-opening-brackets, and finally a literal closing bracket. Should be the same in Perl.
You can use the following regex:
\[[^\]]*mouse.*?\]