正则表达式提取第一部分和表名,然后添加第二部分作为信息

NK

我正在尝试使用 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

见演示:https : //regex101.com/r/TGVwso/1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

MySQL比较字符串的第一部分和第二部分是否相同

如何在单词中使用自定义符号的第一部分和第二部分

通过调用第一部分提取索引第二部分

如果存在小数则使用正则表达式的第一部分进行匹配,如果不存在则使用第二部分进行匹配

如何基于文件名的第一部分和第二部分创建文件夹并将文件移动到该文件夹中?

由于列表范围中的第二部分,如何提取元组的第一部分

在最后一次出现分隔符时,如何在bash中获取字符串的第一部分和第二部分

提取R中url的最后一部分和倒数第二部分

Rails如何在数据库的字符串的第一部分和第二部分中搜索?

正则表达式:获取“路径”的倒数第二部分

正则表达式删除 pathName 的第一部分

正则表达式仅返回比赛的第一部分

正则表达式匹配域名的第一部分

正则表达式的第一部分没有句点

提取字符串第一部分的正则表达式

如何使用python正则表达式提取上下文的第一部分

将字符串分为两部分:第一部分是标题,第二部分是使用php的章节

我可以在text.replace函数的第二部分中使用我的regexp表达式的一部分吗?

将行的第一部分与固定字符串匹配,并在第二部分中计算唯一值

如何在 Amazon Redshift 中获取电子邮件地址的第二部分或第一部分?

如何基于父视图中第一部分的“名称”值加载第二部分?

正则表达式:如何通过正则表达式和jQuery捕获URL的第二部分

为什么我的&&条件的第二部分有效(仅当第一部分为true时才执行)

正则表达式,从图像的src属性中删除第一部分

如何仅通过正则表达式检索原始数据的第一部分中的信息?

正则表达式查找字符串的一部分和相关值

正则表达式从特定位置开始提取四个数字的第一部分

正则表达式在Apache Pig中提取字符串的第一部分

匹配路径名的第一部分和行尾的数字