简体   繁体   中英

How to check if a line contains a string in Python

I'm trying to check if a subString exists in a string using regular expression.

RE: re_string_literal = '^"[a-zA-Z0-9_ ]+"$'

The thing is, I don't want to match any substring. I'm reading data from a file:

Now one of the lines have this text: cout<<"Hello"<<endl;

I just want to check if there's a string inside the line and if yes, store it in a list.

I have tried the re.match method but it only works if we have to match a pattern, but in this case, I just want to check if a string exists or not, if yes, store it somewhere.

re_string_lit = '^"[a-zA-Z0-9_ ]+"$'

text = 'cout<<"Hello World!"<<endl;'

re.match(re_string_lit,text)

It doesn't output anything.

In simple words, I just want to extract everything inside ""

If you just want to extract everything inside "" then string splitting would be much simpler way of doing things.

>>> a = 'something<<"actualString">>something,else'
>>> b = a.split('"')[1]
>>> b
'actualString'

The above example would only work for not more than 2 instances of double quotes ("), but you could make it work by iterating over every substring extracted using split method and applying a much simpler Regular Expression.

This worked for me:


re.search('"(.+?)"', 'cout<<"Hello"<<endl')

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM