【发布时间】:2017-02-07 01:10:44
【问题描述】:
我必须迭代 300 个文件并将字符串从一列更改为 excel 中的 4 列。我知道在 reg-ex 中有一种方法可以做到这一点,但我想不通……我知道preg_match 可以命名返回的匹配项.. 但我尝试使用 regex101.com 来弄清楚如何获得我正在寻找的返回结果..
我有这个字符串..
Rev 1: blah blah blah blah blah blah 1/1/2017 BLAH
我必须把它放入一个看起来像这样的数组中......
$results = array(
"rev" => "Rev 1",
"text" => "blah blah blah blah blah blah",
"date" => "1/1/2017"
"name" => "BLAH"
)
我面临的问题是,我不知道如何在一次 preg_match 调用中获得多个匹配项以返回所需的方式。我尝试在谷歌上搜索一些方法来做到这一点,但结果是空的.
我有一些正则表达式可以分别匹配每个字符串.. 但不是一次全部匹配。
\d+\/\d+\/\d+ \(?[A-z]+\)? 匹配 date 和 name 周围有或没有 ()
^([Rr][Ee][Vv] \d+:) 匹配 rev
我不知道在rev 和date 之间获取text 的方法,所以我没有正则表达式...
【问题讨论】:
-
没有什么是万无一失的。如果文本中出现看起来像日期的内容怎么办?
-
当我将文本从 excel 注释复制到新标签时,我亲自检查了所有 300 多张纸并检查了所有内容。所以我知道没有这样的事情。如果有的话,我会一次检查它们并仔细检查,因为当我运行这个脚本时,它会将它们保存到一个新的目录中,而不是覆盖原始文件。但是是的,你是对的,对其他人来说这可能行不通。
标签: php regex preg-match