所以我有一个这样的字符串(主题标签是分隔符)
A1###B2###C3###12345.jpg
我想知道如何访问A1,B2和C3
STRING1###STRING2###STRING3###STRING4.jpg
SOME###THING###HERE###MEH.jpg
EXTRACT###THIS###PLEASE###pah.jpg
在一个实例中,我想提取第一个字符串。在另一个第二个,在另一个第三个。我将使用Adobe Bridge从文件名中提取元数据项
我循环遍历每个文件名,因此需要
Var1 = FirstString
Var2 = SecondString
Var3 = ThirdString
答案 0 :(得分: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'
假设Adobe Bridge有一个基于ECMAScript的脚本引擎,您可以使用不同的正则表达式:
var myregexp = /^([^#]+)###([^#]+)###([^#]+)###/;
var match = myregexp.exec(subject);
if (match != null) {
artist = match[1];
event = match[2];
photographer = match[3];
}
答案 1 :(得分:-1)
这将是你的正则表达式:
(A1).*(B2).*(C3).*\.jpg
这将捕获您想要的三个部分,同时忽略字符串的其余部分。
要访问这些部分,只需分别使用\ 1,\ 2 \,\。