gpt4 book ai didi

java - 使用 Regex 和 Java 从文本中提取内容

转载 作者:行者123 更新时间:2023-11-30 06:08:19 26 4
gpt4 key购买 nike

我有一些这样的文字:

 //(10,0,'Computer_accessibility','',''),(13,0,'History_of_Afghanistan','',''),(14,0,'Geography_of_Afghanistan','','')

我写了一个模式:

public final static Pattern r_english = Pattern.compile("\\((.*?),(.*?),(.*?),(.*?),(.*?)\\)");

这在 Java 中可以很好地提取 m.group(1)(例如 13)和 m.group(3)(例如 History_of_Afghanistan),其中 m 是匹配器。然而,如果文本是这样的,那么它就会中断,因为 Washington,_D.C. (即 m.group(3))中有一个逗号:

(8543,0,'Washington,_D.C.','',''),(8546,0,'Extermination_camp','','')

有人可以帮我修改正则表达式并提取 Washington,_D.C.东西?谢谢

最佳答案

更改第三个捕获组以捕获所有内容,直到到达结束 '。这允许捕获每个字符(包括逗号)。

更新:为了也允许转义',正则表达式如下所示。积分归 Pshemo,请参阅评论。

public final static Pattern r_english = Pattern.compile("\\((.*?),(.*?),('(?:[^']|\\')*'),(.*?),(.*?)\\)");

关于java - 使用 Regex 和 Java 从文本中提取内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40002225/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com