-1

所以我有一个这样的字符串(主题标签是分隔符)

A1###B2###C3###12345.jpg

我想知道如何访问 A1、B2 和 C3

STRING1###STRING2###STRING3###STRING4.jpg
SOME###THING###HERE###MEH.jpg
EXTRACT###THIS###PLEASE###pah.jpg

在一个例子中,我想提取第一个字符串。在另一个第二个,在另一个第三个。我将在 Adob​​e Bridge 中使用它来从文件名中提取元数据项

我正在遍历每个文件名,所以需要

Var1 = FirstString
Var2 = SecondString
Var3 = ThirdString
4

2 回答 2

2
[^#]+(?=###)

将匹配您的字符串中的所有子字符串,然后###

>>> s = "STRING1###STRING2###STRING3###STRING4.jpg"
>>> import re
>>> re.findall("[^#]+(?=###)", s)
['STRING1', 'STRING2', 'STRING3']

或者,对于您评论中的示例:

>>> s = "Slayer###Reading Festival###James###123.jpg"
>>> artist, event, photographer = re.findall("[^#]+(?=###)", s)
>>> artist
'Slayer'
>>> event
'Reading Festival'
>>> photographer
'James'

假设 Adob​​e Bridge 具有基于 ECMAScript 的脚本引擎,您可以使用不同的正则表达式:

var myregexp = /^([^#]+)###([^#]+)###([^#]+)###/;
var match = myregexp.exec(subject);
if (match != null) {
    artist = match[1];
    event = match[2];
    photographer = match[3];
}
于 2012-09-01T15:29:14.600 回答
-1

这将是您的正则表达式:

(A1).*(B2).*(C3).*\.jpg

这将捕获您想要的三个部分,同时忽略字符串的其余部分。

要访问这些部分,您只需分别使用 \1、\2\、\3。

于 2012-09-01T15:22:47.377 回答