提问人:JuliB 提问时间:10/16/2023 最后编辑:Romeo NinovJuliB 更新时间:10/17/2023 访问量:69
字符串的正则表达式公式,用于提取两种值之一
Regex formula for string to extract one of two kinds of values
问:
我的值穿插了单个值和串联值。我需要创建一个正则表达式来计算值并返回没有“|”的整数或由“|”字符分隔的一组数字中的第一个。
例
现有值
12345667D23
3t23456
ab57890
3t23456|ab57890
12345667D23|3t23456|ab57890
转换后的值(返回相同的单个值或字符串的第一个值,直到“|”)
12345667D23
3t23456
ab57890
3t23456
12345667D23
我是正则表达式的新手。我在这里没有足够的经验......我不是要匹配字符串,只是返回值(可以是数字,也可以是字母数字,没有设置的字符串长度,只是用管道分隔)
答:
-1赞
GolferDude
10/17/2023
#1
试试这个:
^[^\|]+
在这里,匹配一行的开头,匹配一系列不是竖线 () 的字符。因此,整个表达式匹配从行首到行尾的字符序列。^
[^\|]+
|
|
评论
0赞
JuliB
10/18/2023
非常感谢!这在一个文件上效果很好,但在另一个文件上,“|”之前显然有一个额外的空格...有没有一种优雅的方法来消除这个空间?
0赞
JuliB
10/18/2023
我想我想通了......首先,我使用 ^[^\s]+ 作为第一条规则来对包含空格的值进行分类,然后使用您的原始答案作为第二条规则来对不包含空格的值进行分类......它似乎正在工作。
0赞
GolferDude
10/20/2023
如果我正确理解您的格式,您也可以尝试 . 允许单个空间存在/不存在(匹配零个或一个实例)^[^\s?\|]+
\s?
评论
\|.*
(?m)^[^|\r\n]*