正则表达式用于匹配除第一行之外的每一行上的单词

时间:2012-03-25 01:52:25

标签: php regex

WT01-B01-2 WT01-B01-6 WT01-B01-1 
WT01-B01-3 WT01-B01-6 WT01-B01-1 
WT01-B01-4 WT01-B01-6 WT01-B01-1 
WT01-B01-11 WT01-B01-9 
WT01-B01-12 WT01-B01-8 
WT01-B01-13 WT01-B01-8 
WT01-B01-14 WT01-B01-8 
WT01-B01-17 WT01-B01-16 WT01-B01-19 WT01-B01-18 WT01-B01-20 WT01-B01-21 
WT01-B01-18 WT01-B01-16 WT01-B01-19 WT01-B01-20 WT01-B01-21 WT01-B01-17 
WT01-B01-19 WT01-B01-16 WT01-B01-18 WT01-B01-20 WT01-B01-21 WT01-B01-17 
WT01-B01-20 WT01-B01-16 WT01-B01-19 WT01-B01-18 WT01-B01-21 WT01-B01-17 
WT01-B01-21 WT01-B01-19 WT01-B01-18 WT01-B01-20 WT01-B01-17 

我需要做的是在php中,我需要在数组中存储单词。典型的单词看起来像WT01-B01-2。我想要除了每行上的第一个单词之外的所有单词。我尝试了很多,但是做不到。我是编程和正则表达式的新手。如果我错过任何东西,请告诉我。感谢

2 个答案:

答案 0 :(得分:1)

由于您的要求是它不应该是该行的第一个字母,您可以简单地做到这一点:

preg_match_all( "/ WT([0-9]+)-B([0-9]+)-[0-9]+/", $input, $matches );

空格要求前面有另一个单词,并且不会是该行的第一个单词。匹配数组将包含每个单词以及数字。

答案 1 :(得分:0)

我会使用(?<!^|[\w\d-\n\r])([\w\d-]+)(?!=[\w\d-])