我正在尝试使用 Regex 来分隔具有特定分隔符的列。该字段包含如下示例,其中 egUser ID
应成为列名称,然后由该特定列分隔:
并以 结尾|
,但是这可能具有不同的长度。这是示例列:
User ID : '1090affb-4f54-4f12-b47f-57a94ab4ce0d' | User Name : '[email protected]' | Rma : '12929311' | T&C Version : '2'
User ID : '6398b7f3-f248-497e-bb5b-7ecf86833255' | User Name : '[email protected]' | Rma : '12985811' | T&C Version : '2'
User ID : 'f7602cee-35ae-444f-a955-5f41c1babe1c' | User Name : '[email protected]' | Rma : '14626311' | T&C Version : '2'
User ID : '07177e26-d4af-4302-9c4b-feb68087103b' | User Name : '[email protected]' | Rma : '12511156' | T&C Version : '2'
User ID : '6b904713-3fad-464f-baed-f6ea48ee7aab' | User Name : '[email protected]' | Rma : '10611503' | T&C Version : '2' | Abc : '252314620'
User ID : 'c4600019-71cb-4f37-a873-48c1f31dc4b2' | User Name : '[email protected]' | Rma : '12511714' | T&C Version : '2'
User ID : '6cb88928-4856-4d47-a155-74b6d760b1cf' | User Name : '[email protected]' | Rma : '12811759' | T&C Version : '2'
User ID : '200694d3-da0f-4154-9000-0024ac451aad' | User Name : '[email protected]' | Rma : '11165338' | T&C Version : '2'
User ID : 'd78bb37a-756f-48f9-b654-b9d459ae03b6' | User Name : '[email protected]' | Rma : '12116265' | T&C Version : '2'
User ID : 'ef7419ba-361b-45f9-bf7a-37d98f129fad' | User Name : '[email protected]' | Rma : '12112914' | T&C Version : '2'
所以我想要实现的是获得如下输出:
User ID
1090affb-4f54-4f12-b47f-57a94ab4ce0d
User Name
[email protected]
Rma
12929311
T&C Version
2
我尝试了以下方法,但是它太具体了,希望让它更通用,只关注拆分指标:
^User\sID\s:\s'[A-Za-z0-9]*-[A-Za-z0-9]*-[A-Za-z0-9]*-[A-Za-z0-9]*-[A-Za-z0-9]*'\s\|\sUser\sName\s:\s'[A-Za-z0-9]*@*
这也是我试过的例子:
https://regex101.com/r/8SsA6G/1
代替
^(User\sID)\s:\s'([^']*)'\s\|\s(User\sName)\s:\s'([^']+)'\s\|\s(Rim)\s:\s'([^']*)'\s\|\s(T&C\sVersion)\s:\s'([^']+)'$
和:
\1\n\2\n\n\3\n\4\n\n\5\n\6\n\n\7\n\8\n\n
见演示:https : //regex101.com/r/9ITQzr/1
请注意:
[^']
表示不是一个字符的任何字符 '
(...)
是一个捕获组,并且你引用它\1
,\2
等等(或$1
,$2
等等,这取决于语言)编辑:通用解决方案可以是替换:
([^:]+?)\s:\s'([^']*)'(?:\s\|\s|$)?
和:
\1\n\2\n\n
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句