用于查找此模式的正则表达式:

时间:2012-03-14 09:54:55

标签: regex

new line integer | string | integer ||

请注意最后的双垂直条,单个竖条正在使用分隔符。

例如,可以找到以下粗体:

  

11 |任何字符串和数字| 939 | ANY STRING |包括分隔符在内的任何内容|

     

138151 |任何字符串和数字| 90139 ||包括分隔符在内的任何内容|

     

13811 |任何字符串和数字9 | 885 | Morestring |包括分隔符在内的任何内容|

我在寻找第3和第4个分隔符之间的字段为空的行。

4 个答案:

答案 0 :(得分:1)

我想你想要这个:

^\d+\|[^|]+\|\d+\|\|

打破这个局面:

  • ^表示“行首”
  • \d+表示“至少一位数”
  • \|表示“一个文字竖条字符”(需要转义它,因为它本身就意味着“逻辑或”)
  • [^|]+表示“至少有一个非竖线字符”。请注意,需要转义字符类[...]中的字符(当然除了右括号])。

答案 1 :(得分:1)

根据语言/正则表达式的风格,您可以使用如下表达式:

(?mx) ^ \d+ \| [^|]+ \| \d+ \|\| .*

答案 2 :(得分:1)

^[0-9]+\|[ a-zA-Z0-9_]+\|[0-9]+\|.*\|$

您需要为您调整什么是“文本”并将组提取出来。您可以在此处进行测试:http://www.regextester.com/

答案 3 :(得分:1)

对于单行:

\d+\|[^|]+\|\d+\|\|.*

对于多行:

^\d+\|[^|]+\|\d+\|\|.*$