获取一个字符串的PHP正则表达式问题

时间:2015-03-26 17:01:44

标签: php regex

我有以下数据

4  #VS   7 J9 C9 D9 I9 Z0 W8 S6 H0 LHRLAX 1115 1435      346 0E
5  $UN7107 J4 C4 D4 S. Y4 H4 Q4 B4 LHRLAX 1115 1435   *  744 0E

要获取数据,我有以下正则表达式

\A(\d)+[^#$]*?\#(?'code1'\p{Lu}{2})\s*(?'code2'\d{1,4})\b\s*(?<seat1>[A-Z][0-9.](?:\s+[A-Z][0-9.])*+)\s+(?<from>[A-Z]{3})(?<to>[A-Z]{3})\s+(?<other>.*\S)\s*

现在这适用于第一行,但对于第二行,航班号以$而不是#开头,我似乎无法匹配它。我在正则表达式字符串中添加了一个$但没有成功。

我怎样才能使这个工作?

由于

1 个答案:

答案 0 :(得分:2)

\A匹配字符串的开头,而您显然希望将行首^匹配,并且您还需要匹配两者{ {1}}和#,而$仅匹配&#34;任何内容,直到其中一个字符为&#34;:

[^#$]*?

online test