扩展PCRE后正则表达式匹配空格(php)

Elv*_*vis 4 php regex pcre

我正在尝试迁移一个相当大且相当旧的数据库,其中一列包含文件名.问题是在这一个字段中可以有多个由空格分隔的文件名.例如:

"Filename.mp3 file anem.mid fi le nam e.rm"

我试图将这些字符串分开preg_split(),我能想出的最接近的正则表达式是

/(?<=\.[\w]{3})(\s)/

我知道这/(?<=\.[\w]+)(\s)/是行不通的,因为在PCRE中,lookbehind必须有固定的宽度.由于这是一个音乐数据库,因此也有非传统的扩展.

有什么建议?

anu*_*ava 7

您可以使用此正则表达式进行拆分:

~\.\w+\K\h+~
Run Code Online (Sandbox Code Playgroud)

RegEx演示

RegEx详细信息:

  • \.:匹配文字点
  • \w+:匹配1个以上的单词字符
  • \K:重置匹配信息(忘记匹配数据)
  • \h+:匹配1+水平空格