Regex提取第一部分和表名,然后添加第二部分作为信息



我正在尝试使用Regex来分隔具有特定分隔符的列。该字段包含以下示例,其中例如User ID应成为列名,然后用:分隔,并以该特定列的|结尾,但这可能具有不同的长度。以下是示例列:

User ID : '1090affb-4f54-4f12-b47f-57a94ab4ce0d' | User Name : 'Lee76@gmail.com' | Rma : '12929311' | T&C Version : '2'
User ID : '6398b7f3-f248-497e-bb5b-7ecf86833255' | User Name : 'rud41@gmail.com' | Rma : '12985811' | T&C Version : '2'
User ID : 'f7602cee-35ae-444f-a955-5f41c1babe1c' | User Name : 'carinak65@gmail.com' | Rma : '14626311' | T&C Version : '2'
User ID : '07177e26-d4af-4302-9c4b-feb68087103b' | User Name : 'berghcea3@gmail.com' | Rma : '12511156' | T&C Version : '2'
User ID : '6b904713-3fad-464f-baed-f6ea48ee7aab' | User Name : 'hesterafzee@gmail.com' | Rma : '10611503' | T&C Version : '2' | Abc : '252314620'
User ID : 'c4600019-71cb-4f37-a873-48c1f31dc4b2' | User Name : 'faricwl@gmail.com' | Rma : '12511714' | T&C Version : '2'
User ID : '6cb88928-4856-4d47-a155-74b6d760b1cf' | User Name : 'piena331@gmail.com' | Rma : '12811759' | T&C Version : '2'
User ID : '200694d3-da0f-4154-9000-0024ac451aad' | User Name : 'Andrea.ze@gmx.de' | Rma : '11165338' | T&C Version : '2'
User ID : 'd78bb37a-756f-48f9-b654-b9d459ae03b6' | User Name : 'mwians@gmail.com' | Rma : '12116265' | T&C Version : '2'
User ID : 'ef7419ba-361b-45f9-bf7a-37d98f129fad' | User Name : 'kawayalen567@gmail.com' | Rma : '12112914' | T&C Version : '2'

因此,我试图实现的是获得这样的输出:

User ID
1090affb-4f54-4f12-b47f-57a94ab4ce0d
User Name
Lee76@gmail.com
Rma
12929311
T&C Version
2

我尝试了以下内容,但它太具体了,希望它更通用,只关注拆分指标:

^UsersIDs:s'[A-Za-z0-9]*-[A-Za-z0-9]*-[A-Za-z0-9]*-[A-Za-z0-9]*-[A-Za-z0-9]*'s|sUsersNames:s'[A-Za-z0-9]*@*

这也是我尝试过的例子:

https://regex101.com/r/8SsA6G/1

更换

^(UsersID)s:s'([^']*)'s|s(UsersName)s:s'([^']+)'s|s(Rim)s:s'([^']*)'s|s(T&CsVersion)s:s'([^']+)'$

带有:

1n2nn3n4nn5n6nn7n8nn

请参阅演示:https://regex101.com/r/9ITQzr/1

注意:

  • [^']表示任何不是'的字符
  • (...)是一个捕获组,您可以用12等来引用它(或$1$2等,具体取决于语言(

EDIT:通用解决方案可以取代:

([^:]+?)s:s'([^']*)'(?:s|s|$)?

带有:

1n2nn

请参阅演示:https://regex101.com/r/TGVwso/1

最新更新