0

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

我正在尝试(也许过于雄心勃勃!)在正则表达式组中获得全部内容。并不是说它对它有很大影响,但我正在使用 Perl。

带引号的字符串的示例是:

《RAW Superleague backchat 0907 1531》电影/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+)/

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

4

1 回答 1

0

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

/^"?(.*)"$?\s?(\S+)\s(\S+)\s(\S+)\s(\S+)\s(\S+)/
             ^----------- new
于 2013-07-10T10:01:43.037 回答