正则表达式提取字符串

时间:2014-11-04 22:29:50

标签: c# regex

我需要从一个大字符串中提取一个字符串。是否可以使用正则表达式来提取字符串:

4567       Test Assembling the Plant(4566)   [2]         WAST         Testing1<CR><LF>
ERTW         Test the second assembly           [3]        JEST         Test4<CR><LF>
V345           This is another test (FAR X) [9]      KERT         Test192<CR><LF>
--         This is test Number 10       [6] <CR><lf>
                                                              Test100<CR><LF>
           Number of the testing assembly  (1234)                     Test the plant assembly <CR><LF>  

V234              Testing the WIRE ASSEMBLY                               Test this assembly (12345-7876544)  [9]  <CR><LF>
C34567        This is another test assembly   (123456) [6]        trew43     This is test assembly<CR><LF>
RT234      Testing the assembly1100                            PQR         Testing assembly<CR><LF>
PL234         Test                                               RET<CR><LF>

我可以使用正则表达式提取上述数据并将其插入数据库

Table1

Col1       Col2                                            COL3             Col4

4567       Test Assembling the Plant(4566)  [2]            WAST              Testing1
ERTW       Test the second assembly           [3]          JEST              Test4
V345       This is another test (FAR X) [9]                KERT              Test192
--         This is test Number 10       [6]
       Number of the testing assembly  (1234)                            Test the plant assembly 
V234       Testing the WIRE ASSEMBLY                                         Test this assembly   (12345-7876544)  [9]
C34567     This is another test assembly   (123456) [6]    trew43            This is test assembly 
RT234      Testing the assembly1100                        PQR               Testing assembly
PL234      Test                                            RET

是否可以使用正则表达式或基于列号提取上述内容。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

听起来问题是每个数据字段中的多个空格。它们看起来像是在单词之间的单个空格或在开头之前的多个空格(或[。 所以我将它们转换为单个空格,然后根据三个或更多空格将这些字段分开。然后我使用“||”的字段分隔符来清晰

cat file1 file2 | perl -pe 's/\s+\(/ \(/g;s/\s+\[/ \[/g' | perl -pe 's/\s{3,}/ \|\| /g' | perl -pe 's/<CR>.*//'

每行输出都是这样的。订购仅基于猫。

  • 567 ||测试组装工厂(4566)[2] || WAST || Testing1
  • ERTW ||测试第二个组件[3] || JEST || TEST4
  • V345 ||这是另一个测试(FAR X)[9] || KERT || Test192
  • - ||这是测试编号10 [6]
  • || Test100
  • ||测试组件的编号(1234)||测试工厂装配
  • V234 ||测试WIRE ASSEMBLY ||测试这个组件(12345-7876544)[9]
  • C34567 ||这是另一个测试程序集(123456)[6] || trew43 ||这是测试装配 -RT234 ||测试assembly1100 || PQR ||测试组件 -PL234 ||测试|| RET

答案 1 :(得分:0)

是的,您可以使用Regex从大数据中提取字符串。正则表达式空格没问题。

\ s - &gt;任何空格字符