简体   繁体   English

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

[英]find substring between “a” and “(” + 2 unknown characters +“)”

I have some strings which are built this way:我有一些这样构建的字符串:

string = "blabla y the_blabla_I_want (two_digits_number) blabla"

I would like to get the_blabla_I_want.我想得到the_blabla_I_want。 I know the re.search can help but my problem is about how to represent (two_digits_number) .我知道re.search可以提供帮助,但我的问题是如何表示(two_digits_number)

To represent (two_digits_number) , you may use "\([0-9]{2}\)" .要表示(two_digits_number) ,您可以使用"\([0-9]{2}\)"

Here is a regex tutorial in python.这是 python 中的正则表达式教程

To get the_blabla_I_want , you may try the following code:要获得the_blabla_I_want ,您可以尝试以下代码:

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

Depends on how you define the two digits number, yo may want to change "\([0-9]{2}" to "\([1-9][0-9])" to avoid numbers have leading zero取决于您如何定义两位数字,您可能需要将"\([0-9]{2}"更改为"\([1-9][0-9])"以避免数字有前导零

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)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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