简体   繁体   中英

Remove brackets and number inside from string Python

I've seen a lot of examples on how to remove brackets from a string in Python, but I've not seen any that allow me to remove the brackets and a number inside of the brackets from that string.

For example, suppose I've got a string such as "abc[1]". How can I remove the "[1]" from the string to return just "abc"?

I've tried the following:

stringTest = "abc[1]"
stringTestWithoutBrackets = str(stringTest).strip('[]')

but this only outputs the string without the final bracket

abc[1

I've also tried with a wildcard option:

stringTest = "abc[1]"
stringTestWithoutBrackets = str(stringTest).strip('[\w+\]')

but this also outputs the string without the final bracket

abc[1

You could use regular expressions for that, but I think the easiest way would be to usesplit :

>>> stringTest = "abc[1][2][3]"
>>> stringTest.split('[', maxsplit=1)[0]
'abc'

You can use regex but you need to use it with the re module:

re.sub(r'\[\d+\]', '', stringTest)

If the [<number>] part is always at the end of the string you can also strip via:

stringTest.rstrip('[0123456789]')

Though the latter version might strip beyond the [ if the previous character is in the strip list too. For example in "abc1[5]" the "1" would be stripped as well.

Assuming your string has the format "text[number]" and you only want to keep the "text", then you could do:

stringTest = "abc[1]"
bracketBegin = stringTest.find('[')
stringTestWithoutBrackets = stringTest[:bracketBegin]

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