带有可选引号的字符串的正则表达式

时间:2013-07-10 09:58:25

标签: regex

我正在尝试拆分我从telnet服务中获取的字符串,该服务放入引号,文件名的末尾包含空格,如果没有空格,则不包括引号。所有其他字段都用空格分隔,因此没有真正的问题。

我正在尝试(可能过于雄心勃勃!)在Regex小组中全力以赴。并不是说它有很多影响,但我使用的是Perl。

引用字符串的示例是:

  

“RAW Superleague backchat 0907 1531”movie / DV / DV100 63173952000 576000 15:21:35:24 16:34:43:01

和不带引号的字符串可能是:

  

F0736584_02电影/ DV / DV100 9172224000 576000 16:04:19:00 16:14:55:24

我正在使用正则表达式:

  

/ ^ “?(。*)” $?\ S(\ S +)\ S(\ S +)\ S(\ S +)\ S(\ S +)\ S(\ S +)/

在组中返回带引号的字符串,但不返回没有引号的第二个字符串。我认为可选标志会处理这个,但似乎没有。任何帮助赞赏。

1 个答案:

答案 0 :(得分:0)

因为第二行不以空格开头。试试这个:

/^"?(.*)"$?\s?(\S+)\s(\S+)\s(\S+)\s(\S+)\s(\S+)/
             ^----------- new