Regex 获取一组分隔符之间的文本
我有一个带有四个定界符的文本字符串Regex 获取一组分隔符之间的文本,regex,Regex,我有一个带有四个定界符的文本字符串ST:SI:T:和I:,后跟一系列数字和数字。我需要将分隔符作为一个名为group的组抓取,将数字和数字作为code抓取 ST:12YEOR48000FCT:24YEOR48000FCSI:12YEOR13000FCI:12YEOR13000FCT:12YEOR51200FCI:12YEOR14500FCST:12YEOR48000FCT:24YEOR48000FCSI:12YEOR13000FCI:12YEOR13000FCT:12ACTYEI:12ACTYE
ST:
SI:
T:
和I:
,后跟一系列数字和数字。我需要将分隔符作为一个名为group
的组抓取,将数字和数字作为code
抓取
ST:12YEOR48000FCT:24YEOR48000FCSI:12YEOR13000FCI:12YEOR13000FCT:12YEOR51200FCI:12YEOR14500FCST:12YEOR48000FCT:24YEOR48000FCSI:12YEOR13000FCI:12YEOR13000FCT:12ACTYEI:12ACTYET:32000ACTFCI:13300ACTFC
结果应该是
GROUP CODE
ST: 12YEOR48000FC
T: 24YEOR48000FC
SI: 12YEOR13000F
CI: 12YEOR13000F
CT: 12YEOR51200F
CI: 12YEOR14500FC
ST: 12YEOR48000F
CT: 24YEOR48000FC
SI: 12YEOR13000F
CI: 12YEOR13000F
CT: 12ACTYE
I: 12ACTYE
T: 32000ACTFC
I: 13300ACTFC
(?'group'ST:| SI:| T:| I:)(?'code.*?)(?您正在为您的code
组使用正向查找,这将无法实现您想要的功能
但是,您走对了!删除请添加编程语言。@SportsRacer谈到优化,您可以进一步收缩它,您将获得(?S?[TI]:)(?*)(?=S?[TI]:|$)
,请参阅。
(?'group'ST:|SI:|T:|I:)(?'code'.*?)(?=ST:|SI:|T:|I:|$)
(?'group'(?:ST|SI|T|I):)(?'code'.*?)(?=(?:ST|SI|T|I):|$)