在“ a”和“((” + 2个未知字符+“)”之间找到子字符串

时间:2019-10-28 13:59:47

标签: python python-3.x string

我有一些这样构建的字符串:

string = "blabla y the_blabla_I_want (two_digits_number) blabla"

我想得到the_blabla_I_want。 我知道re.search可以提供帮助,但是我的问题是如何代表(two_digits_number)

2 个答案:

答案 0 :(得分:1)

要代表(two_digits_number),可以使用"\([0-9]{2}\)"

这里是python中的regex tutorial

要获取the_blabla_I_want,您可以尝试以下代码:

import re
x = re.search("y (.*) \([0-9]{2}\)", str)
x[1]

取决于您如何定义两位数字,您可能希望将"\([0-9]{2}"更改为"\([1-9][0-9])",以避免数字前导零

答案 1 :(得分:0)

string = "blabla y the_blabla_I_want (99) blabla"
if string.count("(") == 1 and string.count(")") == 1: 
    start_idx = string.find("(")
    end_idx = string.find(")")
    two_digits_number = string[start_idx+1:end_idx]
    print(two_digits_number) # output: 99
    two_digits_number = string[start_idx:end_idx+1]
    print(two_digits_number) # output: (99)