Troubles with regex - regex

I can't figure out how to match this:
[songstart]string with !##$%^&*( and stuff[songend]
I figured out how to match the songstart and songend, but not [songstart] and [songend].
Any tips? =/.

\[songstart\].*\[songend\]
That regex should work. See # http://www.rubular.com/r/TtuS1CZeJf

Are you "escaping" the brackets in your regex?
\[songstart\]
[ and ] are special characters so they need to be treated special.

Related

Search and replace the pattern [digits:digits] in vim

How do I search and replace patterns like [4:5] [23:1] [1:22] etc in my file using search and replace and regex . In vim when I just do a search /[d\+\:\d\+] the pattern is highlighted but when I use %s/[d\+\:\d\+]/ /gc it says trailing characters.
though you answered your own question, I don't think that answer is correct.
your answer: /[d\+\:\d\+]
this won't match [23:1] pattern, you have to escape the [ also, the d\+ is not correct, it should be \d\+
this will replace all those matches with space: (this will replace the [ and ] as well)
:%s/\[\d\+:\d\+]/ /g
ok I figured it out this is the way
:%s/\[\(\d\+\:\d\+\)\]/ /gc

Regex: Match NOT curved or square bracket

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!

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.*?\]

regular expression to match urls of specific site

I'm trying to write a python regular expression that will match both these URLs:
http://www.waymarking.com/waymarks/WM6N3G_Battle_Mountain_State_Park
http://www.waymarking.com/waymarks/WM6N3G
and for both will capture:
http://www.waymarking.com/waymarks/WM6N3G
This is what I have:
(http://www.waymarking.com/waymarks/.*?)_?.*?
But it only matches:
http://www.waymarking.com/waymarks/
Thanks!
(http://www.waymarking.com/waymarks/[^_]*).*
How about
(http://www.waymarking.com/waymarks/[^_]+)
non regex way
url="http://www.waymarking.com/waymarks/WM6N3G_Battle_Mountain_State_Park"
s = url.split("_")
print s[0]
*? makes something completely optional and won't be included if it doesn't have to
(http://www.waymarking.com/waymarks/[^_]+)(_.*)?)
What about this:
(http://www.waymarking.com/waymarks/[a-zA-Z0-9]*)_?.*?
.*(http://www.waymarking.com/waymarks/WM6N3G).* if it is inline
.*? is non-greedy, and so will give up everything except for one character, in this case.

What's the regular expression that matches a square bracket?

I want a regex that matches a square bracket [. I haven't found one yet. I think I tried all possibilities, but haven't found the right one. What is a valid regex for this?
How about using backslash \ in front of the square bracket. Normally square brackets match a character class.
Try using \\[, or simply \[.
If you want to match an expression starting with [ and ending with ], use \[[^\]]*\].
Here is the meaning of each part (as explained at www.regexr.com):
Are you escaping it with \?
/\[/
Here's a helpful resource to get started with Regular Expressions:
Regular-Expressions.info
If you're looking to find both variations of the square brackets at the same time, you can use the following pattern which defines a range of either the [ sign or the ] sign: /[\[\]]/
In general, when you need a character that is "special" in regexes, just prefix it with a \. So a literal [ would be \[.
does it work with an antislash before the [ ?
\[ or \\[ ?
If you want to remove the [ or the ], use the expression: "\\[|\\]".
The two backslashes escape the square bracket and the pipe is an "or".
For a pure exgex, it's simple:
1 /[]abcde]/ - it's the way to include the ']' in the class.
2 /[abc[de]/ - freely put anything else inside the brackets, including the '['. (Most of the meta-characters lose their special meaning inside '[]').
3 Test(verify) your regex w/ 'grep' or 'vim' etc. first.(They are easy-going guys.)
4 It's not too late to try inserting '\' at this moment if your scripting environment doesn't agree.
The below expression is able to detect the timing 65
\[(?<timeElpsed>\d+)ms\]
from the below log:
[2022-12-16T04:51:55.993+0000] [ INFO] [scala-execution-context-global-75] [200 OK]: [100.107.99.132] [65ms] "content-length: