Python正则表达式引用了字符串

时间:2018-01-21 03:44:29

标签: python regex string

我有以下字符串:

str1 = "I am doing 'very well' for your info"

我希望在单引号之间提取部分,即 非常好

我该如何设置正则表达式?

我尝试了以下但显然会给出错误的结果

import re
pt = re.compile(r'\'*\'')
m = pt.findall(str1)

由于

5 个答案:

答案 0 :(得分:4)

您可以使用re.findall在单引号之间捕获组:

import re
str1 = "I am doing 'very well' for your info"
data = re.findall("'(.*?)'", str1)[0]

输出:

'very well'

答案 1 :(得分:3)

使用re.findall解决问题的另一种方法:查找以引号开头和结尾但不包含引号的所有序列。

re.findall("'([^']*)'", str1)

答案 2 :(得分:2)

您需要在转义的单引号之间放置一个单词字符和空格。

import re
pt = re.compile(r"'([\w ]*'")
m = pt.findall(str1)

答案 3 :(得分:2)

您的案例使用完全必要的正则表达式吗?它经常是,但有时正则表达式只会简化简单的字符串操作。

如果没有,您可以使用Python的本机Split函数将字符串拆分为使用'作为分隔符的列表,并访问它创建的数组部分。

str1 = "I am doing 'very well' for your info"
str2 = str1.split("'")
print(str2[1]) # should print: very well

答案 4 :(得分:0)

试试这个

   import re
    pattern=r"'(\w.+)?'"
    str1 = "I am doing 'very well' for your info"
    print(re.findall(pattern,str1))

输出:

['very well']