Как заменить кавычки перед и в конце строки скобками? - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь заменить кавычки скобками, такими как {}. Мне нужно преобразовать данные для импорта bibtex, который не работает с кавычками. Это выглядит так:

@article{NASIR20159,  
title = "Fault-tolerant context development and requirement validation in ERP systems",  
journal = "Computer Standards & Interfaces",  
volume = "37",  
pages = "9 - 19",  
year = "2015",  
issn = "0920-5489",  
doi = "https://doi.org/10.1016/j.csi.2014.05.001",  
url = "http://www.sciencedirect.com/science/article/pii/S0920548914000695",  
author = "S. Zafar Nasir and Tariq Mahmood and M. Shahid Shaikh and Zubair A. Shaikh",  
keywords = "Context development, Requirement validation, Enterprise Resource Planning, Fault tolerance, Data Mining",  
}

И весь файл содержит около 2000 таких записей, плюс аннотации, которые я удалил. Теперь мне нужно заменить все кавычки спереди и в конце строк скобками. В конце концов это должно выглядеть так:

@article{NASIR20159,  
title = {Fault-tolerant context development and requirement validation in ERP systems},  
journal = {Computer Standards & Interfaces},  
volume = {37},  
pages = {9 - 19},  
year = {2015},  
issn = {0920-5489},  
doi = {https://doi.org/10.1016/j.csi.2014.05.001},  
url = {http://www.sciencedirect.com/science/article/pii/S0920548914000695},  
author = {S. Zafar Nasir and Tariq Mahmood and M. Shahid Shaikh and Zubair A. Shaikh},  
keywords = {Context development, Requirement validation, Enterprise Resource Planning, Fault tolerance, Data Mining},  
}

У вас есть идеи, как я могу это сделать? Я пробовал notepad ++ и несколько выражений замены, но безуспешно.

1 Ответ

0 голосов
/ 17 января 2020
  • Ctrl + H
  • Найти что: ^.+?=\h*\K"(.+)"(?=,)
  • Заменить на: {$1}
  • CHECK Обтекание
  • CHECK Регулярное выражение
  • UNCHECK . matches newline
  • Заменить все

Объяснение:

^           # beginning of line
  .+?       # 1 or more any character but newline, not greedy
  =         # equal sign
  \h*       # 0 or more horizontal spaces
  \K        # forget all we have seen until this position
  "         # double quote
  (.+)      # group 1, 1 or more any character but newline
  "         # double quote
  (?=,)     # positive lookahead, make sure we have a comma after

Снимок экрана (до ):

enter image description here

Снимок экрана (после):

enter image description here

...