Multiple instructions in Regex [duplicate] - regex

This question already has answers here:
Regex using javascript to return just numbers
(14 answers)
Closed 3 years ago.
Suppose I have this text :
qsdfq fmld - 123 -mqlskdj -6464 - qlsdkjflj - 54654 -qsdfqsdf -2542
And I want to capture all numbers. A solution could be :
\D*(\d*)\D*(\d*)\D*(\d*)\D*(\d*)
But I don't know how many numbers I have. So I want to use the + sign.
I tried the following but it does not work :
[\D*(\d*)]+

You can simply use \d+ and global flag ( g )
let str = `qsdfq fmld - 123 -mqlskdj -6464 - qlsdkjflj - 54654 -qsdfqsdf -2542`
let op = str.match(/\d+/g)
console.log(op)
On side note: I have JS code just to show a working example.

Related

How to use pandas extract to remove string in a pandas column [duplicate]

This question already has an answer here:
Python Regular Expressions for a question mark [duplicate]
(1 answer)
Closed 10 months ago.
I have this dataframe:
d = pd.DataFrame({'test':['test?_Apple','test?_Banana', 'test?_limon']})
And I want to remove the test?_ string from test columns values to get this:
d = pd.DataFrame({'test':['Apple','Banana', 'limon']})
I am trying:
d['test'] = d['test'].str.extract(r'test?_(.*)')
but it returns NAN
Can someone help me on this one?
Escape ? because special regex character:
d['test'] = d['test'].str.extract(r'test\?_(.*)')

How to replace this string with re.sub? [duplicate]

This question already has answers here:
python regular expression replacing part of a matched string
(5 answers)
Closed 4 years ago.
Assume two strings, foo.example.com/1.2.3/sdk-foo-bar.min.js and foo.example.com/1.2.3/sdk-foo-bar-dev.min.js.
By default, the first one is used in the HTML code, but depending on a parameter, I need to replace it with the second (i.e. add the -dev).
I have a regex already (foo\.example\.com/1\.2\.3/(sdk-foo-bar).min\.js) that looks for the string and captures the group sdk-foo-bar, but how can I now replace this group with sdk-foo-bar-dev??
inp = 'foo.example.com/1.2.3/sdk-foo-bar.min.js'
m = re.search('(^.*)(.min.js)', inp)
if m:
print ('%s-%s%s' % (m.group(1), 'dev', m.group(2)))

I have two regex in .net preRegex = "(?<=(^|[^A-Za-z0-9]+))" postRegex = "(?=([^A-Za-z0-9]+)|$)" . What is the alternate of it in python? [duplicate]

This question already has answers here:
Python Regex Engine - "look-behind requires fixed-width pattern" Error
(3 answers)
Closed 5 years ago.
I have two regex strings in .net
preRegex = "(?<=(^|[^A-Za-z0-9]+))"
postRegex = "(?=([^A-Za-z0-9]+)|$)"
I want their alternative in python. My problem is let say I have a string
s="I am in aeroplane."
What I need is to replace "aeroplane with aeroPlain" so I want to make regex like
newKey = preRegex + aeroplane + postRegex
pattern = re.compile(newKey,re.IGNORECASE)
new regex string look like
(?<=(^|[^A-Za-z0-9]+))aeroplane(?=([^A-Za-z0-9]+)|$)
but it is giving me error "look-behind requires fixed-width pattern".
I am new to python, Help would be appreciated. Thanks
You can use the following regex:
(^|[^A-Za-z0-9]+)aeroplane([^A-Za-z0-9]+|$)
and when you replace, you can call the back reference to the first and second part of your regex to fetch their value.
Replacement string will be something like '\1aeroPlain\2'.
For more information on backref in python:https://docs.python.org/3/howto/regex.html
Good luck!

Convert php regular expression in javascript regex [duplicate]

This question already has answers here:
How to parse JSON with VBA without external libraries?
(3 answers)
Closed 5 years ago.
I've been struggling all day to try and convert the following regex that works for php, into a form for javascript.
I am trying to use it for some VBA where I can replace "sedol" with a variable so I can loop through the string to get "name" and other elements
So for example below I would want the outcome to = '0452173'
php regex:
(?<="sedol":")(.+?)(?=",")
String extract:
"sedol":"0452173","name":"Aberdeen Japan Equity (Class I)", .....
The problem is that JS doesn't support look behind.
However, you could do this:
var re = new RegExp("(?:\"" + yourVar + "\":\"(.+?)(?=\",\")");
Then use
var res = re.exec(yourString);
if (res != null) { // match
return res[1]; // the matched part of (.+?)
}

Drop values between two characters in a string [duplicate]

This question already has answers here:
get filename from url path in R
(2 answers)
Closed 7 years ago.
Suppose I have multiple forms of the following string
x <- "/Users/name/Google Drive/Thesis/Data/Data X and Y/UK//5port/5groups.csv"
I want to drop the values between the first / and the last / to return only 5groups.csv. I used gsub but couldn't find how to specify that pattern.
My question is the same like this one but in R.
If we are using sub
sub('.*\\/', '', x)
#[1] "5groups.csv"