Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-使用正则表达式从数据集中提取子字符串_Java_Regex_Regex Greedy - Fatal编程技术网

Java-使用正则表达式从数据集中提取子字符串

Java-使用正则表达式从数据集中提取子字符串,java,regex,regex-greedy,Java,Regex,Regex Greedy,给定以下数据集,我试图找到一种使用正则表达式提取城市名称的方法 波士顿(马萨诸塞州),纽约市(纽约州,康涅狄格州,新泽西州) 纽约市(纽约州,康涅狄格州,新泽西州),费城(宾夕法尼亚州,新泽西州) 印第安纳波利斯,圣路易斯(密苏里州) 圣路易斯(密苏里州),堪萨斯城(密苏里州) 我希望正则表达式的输出为: 波士顿,纽约市 纽约市,费城 印第安纳波利斯,圣路易斯 圣路易斯,堪萨斯城 我尝试基于两个标准进行模式匹配: (\\w+\\w(?=。())|(\\w+\\w\\h\\w+(?=。()) 由来

给定以下数据集,我试图找到一种使用正则表达式提取城市名称的方法

波士顿(马萨诸塞州),纽约市(纽约州,康涅狄格州,新泽西州)

纽约市(纽约州,康涅狄格州,新泽西州),费城(宾夕法尼亚州,新泽西州)

印第安纳波利斯,圣路易斯(密苏里州)

圣路易斯(密苏里州),堪萨斯城(密苏里州)

我希望正则表达式的输出为:

波士顿,纽约市

纽约市,费城

印第安纳波利斯,圣路易斯

圣路易斯,堪萨斯城

我尝试基于两个标准进行模式匹配:

(\\w+\\w(?=。())|(\\w+\\w\\h\\w+(?=。())

  • 由来自波士顿或费城的字母组成的城市
  • 由附加字符(如句点/附加空格)组成的一个单词
  • 表达式与第一种情况精确匹配。但是,对于第二种情况,它仅与第一次出现的圣路易斯匹配

    我还尝试了以下方法:

    (\\w+?\\w(?=。())|(\\w+\\h\\w+\\h\\w+(?=\\s.()))|(\\w+\\h\\w+(?=\\s.())

  • 第一种情况与上面列出的情况相同,由一个单词“城市”组成
  • 第三份报告设法涵盖了纽约市的案例,但是,正如第一份报告一样,未能识别与之相同模式的案例
  • 与上一个模式中使用的情况相同,匹配的
    圣路易斯
    未能匹配,而匹配的
    堪萨斯城

  • 这可以是.Net的用户

    (((?<=\())\w{2})|(\w{2}(?=\)))|(\w{2}(?=,))
    

    ((?应该是
    NC,GA
    ?(没有空格)在什么语言/环境中?请分享您的尝试。另外,最好知道您计划在中使用什么编程语言/工具。