我正在尝试提取以下数据。
|SERVER-1|Running|SERVER-2|Running|SERVER-3|Running|
我想在这样的垂直条之间获取数据
SERVER-1 Running SERVER-2 Running SERVER-2 Running
我试图在线搜索答案,但我搜索得越多就会让我感到困惑。我得到的最接近的是\[([^]]+)\]
,但它只会选择整行。
答案 0 :(得分:3)
正如Cyborgx37指出的那样,这应该涵盖它:
[^|]+
如果您想无缘无故地使其复杂化,并假设您使用的语言支持环视,那么这也应该有效:
(如果字符串类似|SERVER-2||Running|
,并且您希望中间部分实际打印空字符串,则可能需要此字符串)
(?<=\|)[^|]*(?=\|)
<强>解释强>
?<=
是后视,检查前面的字符是否匹配
?=
是预先检查,检查下一个字符是否匹配
[^|]
表示不是|
+
是一个或多个
*
为零或更多。
\
是逃避|
,否则意味着'或'。
因此,检查前一个字符是|
,下一个字符是|
,实际的正则表达式是一堆不是|
的字符。