Замена текста в Python - PullRequest
       13

Замена текста в Python

2 голосов
/ 08 января 2010

Я просматривал документацию и другие вопросы, но продолжаю сталкиваться с проблемами с регулярным выражением.

Мне нужно убрать все, что есть в [теге] строки.

string = "Article Name [Tag Name]"
#and I want to go to
string = "Article Name"

Буду очень признателен, если кто-нибудь сможет помочь.

Ответы [ 6 ]

2 голосов
/ 08 января 2010
re.sub("\s*\[.*?\]", "", string)
1 голос
/ 08 января 2010

Это не использует регулярное выражение, поэтому, если это требование, это не ответ, но вы можете сделать это:

 string = string.split('[')[0].strip()
1 голос
/ 08 января 2010

Если вы уверены, что [Имя тега] всегда идет после Названия статьи, вы можете сделать это без регулярного выражения.

>>> string="Article Name [Tag Name]"
>>> string[:string.find(" [")]
'Article Name'

или с .partition

>>> string.partition(" [")[0]
'Article Name'
0 голосов
/ 08 января 2010

вот один для нескольких экземпляров тегов []

>>> string = "Article Name [Tag Name] blah blah [tag name2] blah blah [tag name3]"
>>> for i in string.split("]"):
...   print i[ : i.find("[") ]
...
Article Name
 blah blah
 blah blah
0 голосов
/ 08 января 2010

Еще лучше без регулярных выражений:

txt = "Article Name [Tag Name]"
if txt.rfind('[') and txt.rfind(']') > txt.rfind('['): txt = txt[:txt.rfind('[')]
if txt[-1] == ' ': txt = txt[:-1]
0 голосов
/ 08 января 2010
re.sub(r"(.*) \[.*\]", r"\1", string)

Это удалит тег, только если он находится в конце строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...