gpt4 book ai didi

java - 根据位置提取双引号之间的单词

转载 作者:行者123 更新时间:2023-12-01 10:10:02 25 4
gpt4 key购买 nike

我有一个包含多个引号的单个字符串,即:

“布鲁斯·韦恩”“43”“男”“哥谭”

我想创建一个使用正则表达式的方法,根据位置从字符串中提取某些值。

例如,如果我传递 Int 值 1 和 3,它应该返回一个字符串:“布鲁斯·韦恩”“男”

请注意双引号是字符串的一部分,并且是转义字符 (\")

最佳答案

如果(可能的)组数已知,您可以使用正则表达式,如 "(.*?)"\s*"(.*?)"\s*"(.*?)"\s*"(.*?)"以及PatternMatcher并按编号访问组(组 0 将始终是第一个匹配项,组 1 将是表达式中的第一个捕获组,依此类推)。

如果组数未知,您可以使用表达式 "(.*?)"并使用Matcher#find()也在循环中应用表达式并将所有匹配项(在这种情况下为组 0)收集到列表中。然后使用索引访问列表元素(元素 1 将位于索引 0)。

另一种选择是使用 string.replaceAll("^[^\"]*\"|\"[^\"]*$","").split("\"\\s*\"") ,即删除前导和尾随双引号及其之前或之后的任何文本,然后在引号上拆分,中间有可选的空格。

示例:

  • 假设字符串 optional crap before "Bruce Wayne" "43" "male" "Gotham" optional crap after
  • string.replaceAll("^[^\"]*\"|\"[^\"]*$","")将导致Bruce Wayne" "43" "male" "Gotham
  • 正在申请split("\"\\s*\"")上一步的结果将产生数组 [Bruce Wayne, 43, male, Gotham]
  • 然后只需通过索引(从零开始)访问数组元素

关于java - 根据位置提取双引号之间的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36178128/

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