我必须迭代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
我不知道如何在text
和rev
之间获取date
,所以我没有这样的注册表...
答案 0 :(得分:1)
你真的很亲近(请注意:我假设你的所有字符串都是相同的格式)
^([Rr][Ee][Vv] \d+:)(.*)\d+\/\d+\/\d+(.*)?
(.*)
可让您捕捉群组之间的内容。你应该把你想要捕获的任何东西放在括号内。
您可以在此处查看https://regex101.com/r/8GKgWl/1