我正在尝试使用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
注意:
[^']
表示任何不是'
的字符(...)
是一个捕获组,您可以用1
、2
等来引用它(或$1
、$2
等,具体取决于语言(
EDIT:通用解决方案可以取代:
([^:]+?)s:s'([^']*)'(?:s|s|$)?
带有:
1n2nn
请参阅演示:https://regex101.com/r/TGVwso/1