регулярное выражение Python, чтобы пропустить сложный стиль ссылки из текста - PullRequest
0 голосов
/ 08 января 2019

Я прочитал содержимое файла в python и хочу избавиться от всех ссылок, которые придерживаются того же общего формата:

(Author et al., .............. \nGoogle Scholar) # there could be many '\nGoogle Scholar's within the brackets

Введение Эндокринные клетки в островках поджелудочной железы Лангерганс секретирует инсулин и глюкагон в ответ на глюкозу возмущения для поддержания гомеостаза глюкозы. Инсулин-секретирующий бета-клетки проявляют морфологические, функциональные и молекулярные вариации, предполагая, что они могут состоять из подгрупп населения с специализированные задачи и физиологические ответы (Гутьеррес этал., 2017Гутьеррес Г.Д. Громада Дж. Сассел Л. Неоднородность бета-клетка поджелудочной железы. Жене. 2017; 8: 22Crossref \ nPubMed \ nScopus (11) \ nGoogle Scholar, Roscioni et al., 2016Roscioni S.S. Migliorini A. Гегг М. Ликерт Х. Влияние островковой архитектуры на -клетку неоднородность, пластичность и функции. Нат. Преподобный эндокринол. 2016; 12: 695-709Crossref \ nPubMed \ nScopus (36) \ n Google Scholar). Особенности гетерогенность бета-клеток включает чувствительность к глюкозе и секреторность активность ..... Визуализация транскриптов в поджелудочной железе, однако, имеет было невозможно без использования специализированных методов, таких как фотопереключаемые красители (Cui et al., 2018Cui Y. Hu D. Markillie L.M. Крислер В.Б. Gaffrey M.J. Ansong C. Sussel L. Orr G. Колебания Флуоресцентная гибридизация на основе локализации на основе визуализации (fliFISH) для точного обнаружения и подсчета копий РНК в одном клетки. Нуклеиновые кислоты Res. 2018; 46: e7Crossref \ nPubMed \ nScopus (2) \ nGoogle Scholar). Мы оптимизировали стандартную ткань smFISH протокол (Любимова и др., 2013. Любимова А., Ицковиц С., Юнкер Ю.П. Фан З.П. Wu X. van Oudenaarden A. Обнаружение мРНК одной молекулы и считая в ткани млекопитающих. Нат. Protoc. 2013; 8: 1743-1758Crossref \ nPubMed \ nScopus (62) \ nGoogle Scholar) существенно увеличить период денатурации мРНК, что предшествует этапам гибридизации зонда, от 5 минут до не менее 3 часов.

Желаемый вывод

Введение Эндокринные клетки в островках поджелудочной железы Лангерганс секретирует инсулин и глюкагон в ответ на глюкозу возмущения для поддержания гомеостаза глюкозы. Инсулин-секретирующий бета-клетки проявляют морфологические, функциональные и молекулярные вариации, предполагая, что они могут состоять из подгрупп населения с специализированные задачи и физиологические ответы. Особенности бета-клетки гетерогенность включает чувствительность к глюкозе и секреторную активность ..... Визуализация стенограммы в поджелудочной железе, однако, была невозможно без использования специализированных методов, таких как фотопереключаемые красители. Мы оптимизировали стандартную ткань smFISH протокол, существенно увеличив период денатурации мРНК, который предшествует этапам гибридизации зонда, от 5 минут по крайней мере 3ч.

Я не могу найти регулярное выражение, которое пропускает все ссылки за один раз, поэтому мне пришлось сделать это в 2 частях:

  1. Найти все местоположения каждого вхождения \ nGoogle Scholar).
  2. Из каждого местоположения пройдите назад до появления соответствующей открывающей скобки, а затем пропустите символы между этими индексами.

Я пытаюсь сделать это следующим образом:

def remove(test_str):
        regex=re.compile('\\nGoogle Scholar\)')
        starts=[]
        ends=[]
        ret=''
        for end in regex.finditer(test_str): #find all 'Google Scholar)'
            ends.append(m.end())
        for e in ends:                       #find all starting brackets
            i=e
            while True:
                if bool(re.match('\(\D+',test_str[i-2:i])):
                    starts.append(i-2)
                    break
                else:
                    i-=1
        start=test_str[:starts[0]]           #omit all characters in between
        starts=starts[1:]
        end=test_str[ends[-1]:]
        ends=ends[:-1]
        for i,j in zip(starts,ends):
            ret=ret+test_str[j:i]
        return start+ret+end

Однако эта стратегия терпит неудачу, так как регулярное выражение, которое я использую, чтобы найти каждую начальную скобку (\(\D+), недостаточно точно - часто в ссылках есть закрытые скобки, например,

(Cui et al., 2018Cui Y. Hu D. Markillie L.M. Chrisler W.B. Gaffrey M.J. Ансонг С. Сассель Л. Орр Г. Флуктуационная локализация на основе визуализации гибридизация с флуоресцентным происхождением (fliFISH) для точного обнаружения и подсчет копий РНК в отдельных клетках. Нуклеиновые кислоты Res. 2018; 46: e7Crossref \ nPubMed \ nScopus (2) \ nGoogle Scholar)

Следовательно, в этом случае поиск правильной открывающей скобки преждевременно прекращается ....

Кто-нибудь может порекомендовать хороший способ последовательного удаления всех ссылок?

Ответы [ 3 ]

0 голосов
/ 08 января 2019

Я бы решил это следующим образом, который соответствует тому, что вы хотели букве и может обрабатывать скобки в тексте (которые не являются ссылками):

  1. Ищите начало \(

  2. Ищите повторение [^()]+(?:\([^()]+\))?, которое представляет собой один или несколько символов, которые не являются скобками, за которыми следует необязательная пара ( ) с одним или несколькими символами, которые не являются скобками внутри них.

  3. Ищите окончание \nGoogle Scholar\)

  4. Разделить и объединить с пробелами, чтобы удалить несколько пробелов

Код:

import re
text = 'Introduction The endocrine cells in the pancreatic islets of Langerhans secrete insulin and glucagon in response to glucose perturbations to maintain glucose homeostasis. The insulin-secreting beta cells exhibit morphological, functional, and molecular variations, suggesting that they may consist of sub-populations with specialized tasks and physiological responses (Gutierrez etal., 2017Gutierrez G.D. Gromada J. Sussel L. Heterogeneity of the pancreatic beta cell.Front. Genet. 2017; 8: 22Crossref\nPubMed\nScopus (11)\nGoogle Scholar, Roscioni etal., 2016Roscioni S.S. Migliorini A. Gegg M. Lickert H. Impact of islet architecture on -cell heterogeneity, plasticity and function.Nat. Rev. Endocrinol. 2016; 12: 695-709Crossref\nPubMed\nScopus (36)\nGoogle Scholar). Features of beta cell heterogeneity include glucose responsiveness and secretory activity ..... Visualizing transcripts in the pancreas, however, has been infeasible without the use of specialized techniques such as photoswitchable dyes (Cui etal., 2018Cui Y. Hu D. Markillie L.M. Chrisler W.B. Gaffrey M.J. Ansong C. Sussel L. Orr G. Fluctuation localization imaging-based fluorescence insitu hybridization (fliFISH) for accurate detection and counting of RNA copies in single cells.Nucleic Acids Res. 2018; 46: e7Crossref\nPubMed\nScopus (2)\nGoogle Scholar). We have optimized the standard tissue smFISH protocol (Lyubimova etal., 2013Lyubimova A. Itzkovitz S. Junker J.P. Fan Z.P. Wu X. van Oudenaarden A. Single-molecule mRNA detection and counting in mammalian tissue.Nat. Protoc. 2013; 8: 1743-1758Crossref\nPubMed\nScopus (62)\nGoogle Scholar) by substantially increasing the period of mRNA denaturation, which precedes the probe hybridization steps, from 5min to at least 3hr.'
fixed_text = ' '.join(re.sub(r'\((?:[^()]+(?:\([^()]+\))?)+\nGoogle Scholar\)', '', text).split())
print(fixed_text)

Выход:

Введение Эндокринные клетки в панкреатических островках Лангерганс секретирует инсулин и глюкагон в ответ на глюкозу возмущения для поддержания гомеостаза глюкозы. Инсулин-секретирующий бета-клетки проявляют морфологические, функциональные и молекулярные вариации, предполагая, что они могут состоять из подгрупп населения с специализированные задачи и физиологические ответы. Особенности бета-клетки гетерогенность включает чувствительность к глюкозе и секреторную активность ..... Визуализация стенограммы в поджелудочной железе, однако, была невозможно без использования специализированных методов, таких как фотопереключаемые красители. Мы оптимизировали стандартную ткань smFISH протокол, существенно увеличив период денатурации мРНК, который предшествует этапам гибридизации зонда, от 5 минут по крайней мере 3ч.

Улучшение может быть достигнуто путем перехода к следующему коду, который также удаляет пробелы перед начальным \(, но затем он не соответствует желаемому результату (который имеет недостаток):

fixed_text = re.sub(r' ?\((?:[^()]+(?:\([^()]+\))?)+\nGoogle Scholar\)', '', string)

Введение Эндокринные клетки в островках поджелудочной железы Лангерганс секретирует инсулин и глюкагон в ответ на глюкозу возмущения для поддержания гомеостаза глюкозы. Инсулин-секретирующий бета-клетки проявляют морфологические, функциональные и молекулярные вариации, предполагая, что они могут состоять из подгрупп населения с специализированные задачи и физиологические ответы. Особенности бета-клетки гетерогенность включает чувствительность к глюкозе и секреторную активность ..... Визуализация стенограммы в поджелудочной железе, однако, была невозможно без использования специализированных методов, таких как фотопереключаемые красители. Мы оптимизировали стандартную ткань smFISH протокол, существенно увеличив период денатурации мРНК, который предшествует этапам гибридизации зонда, от 5 минут по крайней мере 3ч.

0 голосов
/ 08 января 2019
import re

if __name__ == '__main__':
    source = """Introduction The endocrine cells in the pancreatic islets of Langerhans secrete insulin and glucagon in response to glucose perturbations to maintain glucose homeostasis. The insulin-secreting beta cells exhibit morphological, functional, and molecular variations, suggesting that they may consist of sub-populations with specialized tasks and physiological responses (Gutierrez etal., 2017Gutierrez G.D. Gromada J. Sussel L. Heterogeneity of the pancreatic beta cell.Front. Genet. 2017; 8: 22Crossref\nPubMed\nScopus (11)\nGoogle Scholar, Roscioni etal., 2016Roscioni S.S. Migliorini A. Gegg M. Lickert H. Impact of islet architecture on -cell heterogeneity, plasticity and function.Nat. Rev. Endocrinol. 2016; 12: 695-709Crossref\nPubMed\nScopus (36)\nGoogle Scholar). Features of beta cell heterogeneity include glucose responsiveness and secretory activity ..... Visualizing transcripts in the pancreas, however, has been infeasible without the use of specialized techniques such as photoswitchable dyes (Cui etal., 2018Cui Y. Hu D. Markillie L.M. Chrisler W.B. Gaffrey M.J. Ansong C. Sussel L. Orr G. Fluctuation localization imaging-based fluorescence insitu hybridization (fliFISH) for accurate detection and counting of RNA copies in single cells.Nucleic Acids Res. 2018; 46: e7Crossref\nPubMed\nScopus (2)\nGoogle Scholar). We have optimized the standard tissue smFISH protocol (Lyubimova etal., 2013Lyubimova A. Itzkovitz S. Junker J.P. Fan Z.P. Wu X. van Oudenaarden A. Single-molecule mRNA detection and counting in mammalian tissue.Nat. Protoc. 2013; 8: 1743-1758Crossref\nPubMed\nScopus (62)\nGoogle Scholar) by substantially increasing the period of mRNA denaturation, which precedes the probe hybridization steps, from 5min to at least 3hr."""
    output = re.sub(' \(.*? etal\., .*?\\nGoogle Scholar\)', '', source, flags=re.DOTALL)

    print(output)

выход

Introduction The endocrine cells in the pancreatic islets of Langerhans secrete insulin and glucagon in response to glucose perturbations to maintain glucose homeostasis. The insulin-secreting beta cells exhibit morphological, functional, and molecular variations, suggesting that they may consist of sub-populations with specialized tasks and physiological responses. Features of beta cell heterogeneity include glucose responsiveness and secretory activity ..... Visualizing transcripts in the pancreas, however, has been infeasible without the use of specialized techniques such as photoswitchable dyes. We have optimized the standard tissue smFISH protocol by substantially increasing the period of mRNA denaturation, which precedes the probe hybridization steps, from 5min to at least 3hr.
0 голосов
/ 08 января 2019

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

(?s)\(.*?Google Scholar\) ?

И заменить его пустой строкой. Здесь (?s) для включения . для соответствия новым строкам.

Проверьте здесь

Вот демонстрация кода Python,

import re

s = 'Introduction The endocrine cells in the pancreatic islets of Langerhans secrete insulin and glucagon in response to glucose perturbations to maintain glucose homeostasis. The insulin-secreting beta cells exhibit morphological, functional, and molecular variations, suggesting that they may consist of sub-populations with specialized tasks and physiological responses (Gutierrez etal., 2017Gutierrez G.D. Gromada J. Sussel L. Heterogeneity of the pancreatic beta cell.Front. Genet. 2017; 8: 22Crossref\nPubMed\nScopus (11)\nGoogle Scholar, Roscioni etal., 2016Roscioni S.S. Migliorini A. Gegg M. Lickert H. Impact of islet architecture on -cell heterogeneity, plasticity and function.Nat. Rev. Endocrinol. 2016; 12: 695-709Crossref\nPubMed\nScopus (36)\nGoogle Scholar). Features of beta cell heterogeneity include glucose responsiveness and secretory activity ..... Visualizing transcripts in the pancreas, however, has been infeasible without the use of specialized techniques such as photoswitchable dyes (Cui etal., 2018Cui Y. Hu D. Markillie L.M. Chrisler W.B. Gaffrey M.J. Ansong C. Sussel L. Orr G. Fluctuation localization imaging-based fluorescence insitu hybridization (fliFISH) for accurate detection and counting of RNA copies in single cells.Nucleic Acids Res. 2018; 46: e7Crossref\nPubMed\nScopus (2)\nGoogle Scholar). We have optimized the standard tissue smFISH protocol (Lyubimova etal., 2013Lyubimova A. Itzkovitz S. Junker J.P. Fan Z.P. Wu X. van Oudenaarden A. Single-molecule mRNA detection and counting in mammalian tissue.Nat. Protoc. 2013; 8: 1743-1758Crossref\nPubMed\nScopus (62)\nGoogle Scholar) by substantially increasing the period of mRNA denaturation, which precedes the probe hybridization steps, from 5min to at least 3hr.'

replacedStr = re.sub(r'(?s)\(.*?Google Scholar\) ?','',s)
print(replacedStr)

Печатает следующее, как вы упомянули в своем посте.

Введение Эндокринные клетки в панкреатических островках Лангерганс секретирует инсулин и глюкагон в ответ на глюкозу возмущения для поддержания гомеостаза глюкозы. Инсулин-секретирующий бета-клетки проявляют морфологические, функциональные и молекулярные вариации, предполагая, что они могут состоять из подгрупп населения с специализированные задачи и физиологические ответы. Особенности бета-клетки гетерогенность включает чувствительность к глюкозе и секреторную активность ..... Визуализация стенограммы в поджелудочной железе, однако, была невозможно без использования специализированных методов, таких как фотопереключаемые красители. Мы оптимизировали стандартную ткань smFISH протокол, существенно увеличив период денатурации мРНК, который предшествует стадиям гибридизации, от 5 минут до, по крайней мере, 3ч.

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