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

标签 php regex pcre

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

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

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

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

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

有什么建议吗?

最佳答案

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

~\.\w+\K\h+~

RegEx Demo

正则表达式详细信息:

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

关于php - 正则表达式在扩展 PCRE (php) 后匹配一个空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49943530/

相关文章:

php - WooCommerce 中生成的项目(产品)表在哪里

php - 正则表达式 - 删除所有非字母数字字符 CRLF 问题

c# - 将 String.Replace 替换为 Regex.Replace

javascript - 改进 JavaScript 正则表达式以匹配带有或不带有结束标记的标记内的内容,不包括 self

javascript - 正则表达式三个点之前的所有内容

regex - 命名和未命名的 PCRE 捕获组如何交互?

php - 向急需重构的代码库添加功能

php - CSS 背景图片未加载,似乎找不到图片

regex - 如何从日志文件中 grep 错误但过滤掉错误警报?

php - 在 php 中,如何使用 preg replace 将 url 转换为 tinyurl