我想从此字符串中检索名称,但它不应该使用RegEx消耗" and "s
。
author={GenTSCH, JoN R and Glass, RI and Woods, P and Gouvea, V and Gorziglia, M and Flores, J and Das, BK and Bhan, MK}
到目前为止,我已经写了(?<author={).*(?=})
,但是它捕获了{}
中的所有字符串
我正在原子编辑器中运行RegEx来捕获文件中的字符串。
我想要的输出是选择括号内除\sand\s
之外的整个字符串。
如何解决此问题?
答案 0 :(得分:1)
该模式完全归功于@Wiktor!这行得通...同时了解到python regex模块与re模块 (后者在标准库中,我怀疑regex101使用的是:o)
import regex
pattern = r"(?:author={|\G(?!\A)\s+and\s+)\K(?:(?!\sand\s)[^{}])+"
test_str = "author={GenTSCH, JoN R and Glass, RI and Woods, P and Gouvea, V and Gorziglia, M and Flores, J and Das, BK and Bhan, MK}"
print(regex.findall(pattern, test_str))
## ['GenTSCH, JoN R', 'Glass, RI', 'Woods, P', 'Gouvea, V', 'Gorziglia, M', 'Flores, J', 'Das, BK', 'Bhan, MK']