|
|
Yes, I think
\w*bad boys\w* will do it.
It's MySQL Regex expression, and it seems that it works for both Latin and non-Latin characters.
|
|
|
|
|
What is Perl regex anchor to merely match at the position where the previous match ended, as anchor \G matches at the position where the previous match ended, and also at the first match attempt the \G matches at the start of the string in the way \A does.
|
|
|
|
|
Grateful to God who guide me to the best path
Perl's way
(?!^)\G
or
(?!\A)\G
|
|
|
|
|
|
Hello,
I am learning Regex.
I use Regex for a file-searching programme in Linux. (FSearch)
I do not understand, why we need ?= in Regex.
It looks for me like ?= is needless.
Why do I think so?
Here is an example:
abc(?=.*xyz)
But isn't this exactly the same like:
abc.*xyz
So actually my question is:
Can you give me an example, where ?= is really needed, because I can not get the same result without ?= ?
Would appreciate some answers.
Thank you.
modified 17-Jul-22 7:00am.
|
|
|
|
|
|
Thank you for the link.
In the meantime I think, I have found out, what the difference is between
abc(?=.*xyz) and abc.*xyz
We have 4 elements:
1. The regex search command string
2. The strings (e.g. the names of the files).
3. The strings that had a result (e.g. the file names that have a result).
4. The result for each string (The match within each string)
2-3 are the same for both abc(?=.*xyz) and abc.*xyz .
But 4. is different.
|
|
|
|
|
If you want to experiment with your expression, Google for "Expresso 3". It's free and an indispensable tool for understanding regular expressions.
|
|
|
|
|
Hello I was trying to understand how to work with a regex expression for when a User enters starts typing in 600 in the input field, then populate the error message. What would be the regex code for that?
Currently I have `^[\w'\-,.][^0-9_!¡?÷?¿\/\\+=@#$%ˆ&*(){}|~<>;:[\]]{2,}$`
|
|
|
|
|
Do you really need all that just to capture "600"?
|
|
|
|
|
thank you for your reply:
Main thing is if customer enters a credit card like 1111222233334444 that is ok, but if customer enters a credit card number that starts with 600 and then other characters then it should be validated. ex: 6001222233334444
|
|
|
|
|
In that case it would be easier just to check if the first 3 characters are "600"; and you can do that with a simple string method in most languages.
|
|
|
|
|
How would I do that? I tried with
^600 but it instead it didnt show that error but got rid of it. I want to show the error when customer enters 600 first and any numbers after.
|
|
|
|
|
Looks like you're specifying the pattern for valid values, rather than invalid values.
Try:
^([^6]|6[^0]|60[^0]) Regexper[^]
regex101: build, test, and debug regex[^]
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Why do you need a regex for such a simple test?
if (text.substring(0, 3).equals("600"))
...
|
|
|
|
|
Friends,
I am using PowerShell.
I am trying to write a regex match pattern for a string that has ALL these qualifications:
1. Must have one and only one period in the string.
A. At least one Alpha, A-Za-z before the period.
B. At least one Alpha, A-Z Za-z after the period.
2. The last character in the string must be numeric, 0-9 No Alpha, A-Za-z
3. The second-to-the-last character must be one of these two:
A. May be Alpha, , A-Z Za-z or
B. May be numeric, 0-9
4. No Numerics, 0-9 Allowed except the last two characters in the string.
Examples of good ones:
Joe.Jones1
Joe.Jones01
J.J1
j.j99
jo.jn01
jo.j1
I have written many small pieces of code that could be pieced together using -AND for many matches but surely there is a way to make some one-liner that can incorporate all of these.
I may be able to do it using -AND like this:
$test -notmatch “[0-9]” -AND $test -NOTmatch “[\.]" -AND $test -match “[a-zA-Z]" -AND $test -NOTmatch “[@#$%^&*()]"
But I would like to be eloquent and do something like this:
$GoodPatternCheck = $PossibleGoodName -match '.+,.+,.+,.+'
If ( $GoodPatternCheck )
I have written many short matches in my learning process which I plan on sharing with my co-workers who are also novices.
I don't see any way to attach a file here, so here is an example of the kinds of short piece of code I write and test to help me learn:
$test = "Now......... is t.he, tim,e"
Write-Host ‘$test’ $test
$Count = ($test.Split('\.')).count -1
Write-Host ‘$test’ $test
Write-Host ‘$Count’ $Count
Thank you in advance for your help on this.
-- modified 12-Jun-22 10:58am.
|
|
|
|
|
You may need to tweak bits of this to suit PowerShell's regex engine, but the idea should work.
[A-Za-z]+\.[A-Za-z]+[A-Za-z0-9]?[0-9]
In words: one or more alpha, a literal period, one or more alpha, an optional alphanumeric, one numeric.
Software rusts. Simon Stephenson, ca 1994. So does this signature. me, 2012
|
|
|
|
|
Peter, you must be some kind of genius! I thought it would take days for somebody to figure this out. Here is what works on my PowerShell ISE:
'[A-Za-z]'+'[\.]' + '[A-Za-z]+[A-Za-z0-9]?[0-9]'
Perfect! Thanks!
Now I will go study what the question mark means ?
|
|
|
|
|
"As few as possible"
Is you are going to play with Regular Expressions, then you need a tool. Get a copy of Expresso[^] - it's free, and it examines and generates Regular expressions.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
OriginalGriff, Thanks for the information, I will look at that! Yes, I think I need a tool.
I just found Regex101.com also. I don't know how these work yet, I hope I can get these to work.
|
|
|
|
|
Peter, I was too hasty, Here is what works best:
'[A-Za-z]'+'[\.]' + '[A-Za-z]'+'[A-Za-z0-9]?[0-9]'
|
|
|
|
|
Peter, I was too hasty again.
The problem is:
This is supposed to match: Joe.Jone2
Not supposed to match: Joe.Jone222
I am using: [A-Za-z]'+'[\.]' + '[A-Za-z]+[A-Za-z0-9]?[0-9] Matches Joe.Jone2 Also Matches Joe.Jones22
Prolem is, it also matches Joe.Jones222
Only the last two may be numeric.
Examples of good ones:
Joe.Jones1
Joe.Jones01
J.J1
j.j99
jo.jn01
jo.j1
Examples of ones that I do not want to match, Bad ones:
Joe.Jones222
Joe2.Jones1
Joe.2Jones01
I am testing/playing with: [A-Za-z]'+'[\.]' + '[A-Za-z]'+'[A-Za-z0-9]?[0-9]
|
|
|
|
|
Peter, I am having better luck by adding two Dollar Signs $ at the end.
The last Test below here is the only problem now.
I want J.j1 to be true too.
Here are the tests:
PS C:\Users\gmsab> "j.jo1" -match '[A-Za-z]'+'[\.]' + '[A-Za-z]+[A-Za-z0-9]$?[0-9$]$'
True
PS C:\Users\gmsab> "joe.jones11" -match '[A-Za-z]'+'[\.]' + '[A-Za-z]+[A-Za-z0-9]$?[0-9$]$'
True
PS C:\Users\gmsab> "j.jones11" -match '[A-Za-z]'+'[\.]' + '[A-Za-z]+[A-Za-z0-9]$?[0-9$]$'
True
PS C:\Users\gmsab> "j.jones1" -match '[A-Za-z]'+'[\.]' + '[A-Za-z]+[A-Za-z0-9]$?[0-9$]$'
True
PS C:\Users\gmsab> "j.jones" -match '[A-Za-z]'+'[\.]' + '[A-Za-z]+[A-Za-z0-9]$?[0-9$]$'
False
PS C:\Users\gmsab> "j.jones221" -match '[A-Za-z]'+'[\.]' + '[A-Za-z]+[A-Za-z0-9]$?[0-9$]$'
False
PS C:\Users\gmsab> "j.j21" -match '[A-Za-z]'+'[\.]' + '[A-Za-z]+[A-Za-z0-9]$?[0-9$]$'
True
PS C:\Users\gmsab> "j.j1" -match '[A-Za-z]'+'[\.]' + '[A-Za-z]+[A-Za-z0-9]$?[0-9$]$'
False
|
|
|
|
|
Too many $. In all the regex engines I use (I don't do PowerShell), $ matches the end of the input string. I forgot that off my original answer, sorry. It should be there to disallow trailing garbage.
Similarly you probably need a ^ at the start to match start of string.
In regex,
* means "0 or any number of occurrences of the previous item"
+ means "1 or more occurrences..."
? means "0 or 1 occurrences..."
. matches any character, so to match a literal period, you need to escape it with \
So your regex should finally be
^[A-Za-z]+\.[A-Za-z]+[A-Za-z0-9]?[0-9]$
only adding whatever delimiters and escapes are required by PowerShell (which should probably be just ' ' around the whole exprerssion).
Software rusts. Simon Stephenson, ca 1994. So does this signature. me, 2012
|
|
|
|