我有个问题希望有人能帮上忙。
这是输入字符串
Lopes de Carvalho, L., Structural Bioinformatics Laboratory, Biochemistry, Faculty of Science and Engineering, √Öbo Akademi University, Turku, Finland; Bligt-Lind√©n, E., Structural Bioinformatics Laboratory, Biochemistry, Faculty of Science and Engineering, √Öbo Akademi University, Turku, Finland; Ramaiah, A., Structural Bioinformatics Laboratory, Biochemistry, Faculty of Science and Engineering, √Öbo Akademi University, Turku, Finland, Sri Paramakalyani Centre for Environmental Sciences, Manonmaniam Sundaranar University, Alwarkurichi, Tamil Nadu 627412, India; Johnson, M.S., Structural Bioinformatics Laboratory, Biochemistry, Faculty of Science and Engineering, √Öbo Akademi University, Turku, Finland; Salminen, T.A., Structural Bioinformatics Laboratory, Biochemistry, Faculty of Science and Engineering, √Öbo Akademi University, Turku, Finland; 这种模式就像
<author name>., <author meta>; <pattern repeats>
<author meta> => from this, need group the values by any one of the comma separated value matches first, which contains the string university|college|institute 让我们取下给定字符串的第一部分。
Lopes de Carvalho, L., Structural Bioinformatics Laboratory, Biochemistry, Faculty of Science and Engineering, √Öbo Akademi University, Turku, Finland;需要像这样的分组
比赛1:
第1组:洛佩斯·德卡瓦略,L based on ., separator
第2组:科学和工程学院生物化学结构生物信息学实验室
第3组. first match which contains the given set of strings (i.e) university阿卡德米大学√
第4组:图尔库,芬兰
比赛2:
第1组: Ramaiah,A.
第2组:科学和工程学院生物化学结构生物信息学实验室
第3组. first match which contains the given set of strings (i.e) university阿卡德米大学√
4组:芬兰图尔库,斯里兰卡环境科学中心,Manonmaniam Sundaranar大学,Alwarkurichi,Tamil Nadu,627412,印度
从这个组2,3,4我无法知道如何构造正则表达式。
这是我的尝试
(.*?)\., ([^,]*)(.*?);https://regex101.com/r/I7xjlx/1
我尝试过许多方法来完成这个任务,但是无法找到构建正则表达式的最佳方法。
发布于 2021-08-22 03:14:51
正则表达式匹配不区分大小写的单词“”,并出现在匹配组的end中,后面跟着一个逗号。例如:, √Öbo Akademi University, ...,而不是, University of √Öbo Akademi, ...。
此外,在第三组之后,如果集合中的一个单词再次出现,它将不会捕获。如:
Turku, Finland, Sri Paramakalyani Centre for Environmental Sciences, Manonmaniam Sundaranar --> University <--, Alwarkurichi, Tamil Nadu 627412, India正则表达式
/(.*?\.), (.*?)(?:, )([^,]+(?<=university|college|institute)), (.*?); /gi
对RegExp的解释:
(.*?\.),:任何事情,直到.,然后是, (第一组)(.*?)(?:, ):在第三组(第二组)之前出现,之前的任何事情。([^,]+(?<=university|college|institute)):在给定集合的一个词之前的任何东西,直到从后面到前面的第一个逗号(第三组), (.*?);:,之后的任何事情,直到; (第四组)旗帜:
g:全球i:不敏感如下图所示:RegExp
https://stackoverflow.com/questions/68877827
复制相似问题