Php 新行上的正则表达式对关联

Php 新行上的正则表达式对关联,php,regex,windows,notepad++,Php,Regex,Windows,Notepad++,我必须为批量文件重命名器设置一个配对列表。我可以用php获取dir1和dir2的文件内容,但在将其发送到批量重命名器之前,我需要将它们配对。我的问题是,即使在php中,这两个文件的输出也是这样 output 1 abc.jpg def.jpg fgh.jpg output 2 _01.wmv _02.wmv _03.wmv 尝试为它执行正则表达式,删除新行并将它们全部放在一个字符串中,然后使用 ([a-zA-Z]+)(.jpg)(.+)(_[0-9]+\.wmv) 并替换为 \r\n\

我必须为批量文件重命名器设置一个配对列表。我可以用php获取dir1和dir2的文件内容,但在将其发送到批量重命名器之前,我需要将它们配对。我的问题是,即使在php中,这两个文件的输出也是这样

output 1

abc.jpg
def.jpg
fgh.jpg

output 2

_01.wmv
_02.wmv
_03.wmv
尝试为它执行正则表达式,删除新行并将它们全部放在一个字符串中,然后使用

([a-zA-Z]+)(.jpg)(.+)(_[0-9]+\.wmv)
并替换为

\r\n\1\2\r\n\4\r\n\3
但是,这会输出first->last,并且必须重复该过程。我知道我错过了什么

可能是一个起始字符串或另一个我不知道的运算符。请帮忙。多谢各位

编辑//

所需输出为

abc.jpg _01.wmv
def.jpg _02.wmv
fgh.jpg _03.wmv
通过将它们放在一个字符串中,我的意思是删除所有新行,所以输出如下

abc.jpgdef.jpgfgh.jpg_01.wmv_02.wmv_03.wmv

谢谢你的反馈

我不太清楚你的意思,但这是我从你的问题中理解的:你有两个文件。它们都包含一些jpg和wmv文件名。您希望从这两个文件中提取所有这些文件名。如果是这样,这就是您需要的:

/(?:^|\G).*?([\w_]+\.(?:jpg|wmv))/sg
从中看到它


此正则表达式使用\G和/G修饰符使此正则表达式自身重复。这是如何工作的,已经很好地解释过了。

我想你想要的是类似的东西

在Notepad++中实现类似功能的一种方法是使用矩形区域进行复制和粘贴。在记事本++中,按住Alt键,将鼠标指针拖动到文本的矩形区域上,然后释放Alt键。复制所选区域。单击文件中的其他位置或其他文件,然后粘贴到复制的文本中。对于问题中的tie问题,我将对一个文件的全部内容进行矩形选择,并将其粘贴到另一个文件中


复制和粘贴时,请注意矩形选择如何处理不同长度的行。我建议在尝试真正的文件之前先尝试一些文本。

等等,我不确定把它们全部放在一个字符串中是什么意思。你能给你的问题添加所需的输出吗?为什么不单独执行匹配,如果匹配计数相同,则执行循环。使用你文章中的两个列表向我们展示你想要实现的目标。你说的“我需要让他们配对”是什么意思?很抱歉,我太累了,错过了想要的输出。我马上编辑.你的问题得到回答了吗?如果是,请在有帮助的答案上做标记或投票。如果没有,请说明还需要做些什么。