用于提取两种值之一的字符串的正则表达式

问题描述 投票:0回答:2

我的值包含单个值和散布的串联值。我需要创建一个正则表达式来计算值并返回没有“|”的整数或由“|”分隔的一组数字中的第一个角色。

示例

现有价值

12345667D23
3t23456
ab57890
3t23456|ab57890
12345667D23|3t23456|ab57890

转换后的值(返回相同的单个值或字符串的第一个值,直到“|”)

12345667D23
3t23456
ab57890
3t23456
12345667D23

我是正则表达式的新手。我在这里没有足够的经验...我不想匹配字符串,只是返回值(可以是数字,可以是字母数字,没有设定的字符串长度,只是用管道分隔)

regex string adobe delimiter
2个回答
-1
投票

您不需要正则表达式来完成该任务。

awk
中的这个简单脚本将完成这项工作:

awk -F\| '{print $1}' input_file

选项

-F\|
将输入字段分隔符设置为
|
,然后
awk
分隔字段/列中的输入行。并打印第一个。


-1
投票

试试这个:

^[^\|]+

这里,

^
匹配行的开头,
[^\|]+
匹配一系列非管道字符(
|
)。因此整个表达式匹配从行首到
|
或行尾的字符序列。

© www.soinside.com 2019 - 2024. All rights reserved.