gpt4 book ai didi

java - 使用带有多个定界符的正则表达式 (Java/Kotlin) 拆分文本

转载 作者:行者123 更新时间:2023-11-29 04:17:25 24 4
gpt4 key购买 nike

我有一个字符串行,其中 code(2 个字符)和 name> 分隔

例如。 CP >RENATO DE SACP >FRAIS。我想将这一行与代码名称 成对拆分。

我有这段文字:

CT >RUSSO CT >JOSE AQUINO CP >RENATO DE SA CP >FRAIS CF >TAMARA STUCCHI CF >VANESSA JULKOWS CM >CRISTINA LOUSTA CM >HANS KROESCHEL CM >CONCEICAO MACIE CM >AIMEE FRARI CM >JONNY MOREIRA

期望的结果:

CT, RUSSO 
CT, JOSE AQUINO
CP, RENATO DE SA
CP, FRAIS
CF, TAMARA STUCCHI
CF, VANESSA JULKOWS
CM, CRISTINA LOUSTA
CM, HANS KROESCHEL
CM, CONCEICAO MACIE
CM, AIMEE FRARI
CM, JONNY MOREIRA

最佳答案

您可以使用此正则表达式拆分 ( (?=[A-Z]{2} >)| >)

import java.util.*

fun main(args: Array<String>) {
val input = "CT >RUSSO CT >JOSE AQUINO CP >RENATO DE SA CP >FRAIS ...";
val split = input.split("( (?=[A-Z]{2} >)| >)".toRegex())
for (i in split.indices step 2)
println(split[i] + ", " + split[i + 1])
}

输出

CT, RUSSO
CT, JOSE AQUINO
CP, RENATO DE SA
CP, FRAIS
CF, TAMARA STUCCHI
CF, VANESSA JULKOWS
CM, CRISTINA LOUSTA
CM, HANS KROESCHEL
CM, CONCEICAO MACIE
CM, AIMEE FRARI
CM, JONNY MOREIRA

您可以查看 ideone demo

正则表达式细节:

正则表达式将匹配两个东西 ( (?=[A-Z]{2} >)| >)

  • (?=[A-Z]{2} > 空格后跟两个大写字母,然后是空格,然后是 > 符号,但我们需要两个大写字母我们使用 ?= 正向预测
  • |
  • > 一个空格后跟 > 符号

您可以查看 regex demo here

关于java - 使用带有多个定界符的正则表达式 (Java/Kotlin) 拆分文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51460166/

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