如何创建一个使用正则表达式提取txt的一部分的函数

时间:2018-01-03 05:01:27

标签: regex vb.net

我有一组包含计算机信息的txt,如下所示:

CPU
\tManufacturer\tIntel
\tModel\tPentium 4
\t\tDetails\tSocket LGA 3.00Ghz 2 cores
\t\tObservations\t...

RAM
\tSlot #1
\t\tType\tDDR2
\t\tSize\t1024 MBytes
\tSlot #2
\t\tType\tDDR2
\t\tSize\t1024 MBytes

Storage
\tHard drives
\t\tManufacturer\tMaxtor
\t\tSize\t500GB
  • 实际上“\ t”是“标签”
  • 在某些文本中,项目和细节的顺序是不同的(2核插座LGA 3.00Ghz)

我已经将txt转换为String但我想在visual basic .net中创建一个函数,它提取CPU,型号,套接字,核心速度和内核数量的制造商,以及RAM 1的大小和2和硬盘的大小

1 个答案:

答案 0 :(得分:0)

跟随正则表达式(PCRE)匹配ram大小:

(?:(.|\s)*?\n\nRAM|\n\n(.|\s)*)(*SKIP)(?!)|Size\\t\K.*
  • (*SKIP)(?!)

    • (?!):失败
    • (*SKIP):阻止回溯
  • (.|\s)*?\n\nRAM:匹配从开始到\n\nRAM

  • 的所有内容
  • \n\n(.|\s)*:匹配\n\n
  • 之后的所有内容

regex101 link

否则可以分两步完成

/RAM((?!\n\n).)*\n\n/gs

检索RAM信息,然后

/(?<=Size\\t).*/g

检索RAM信息中的大小