-1

だから私はこのような文字列を持っています(ハッシュタグは区切り文字です)

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

A1、B2、C3にどうやってアクセスするのだろうと思っていました

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

ある例では、最初の文字列を抽出したいと思います。別の 2 番目、別の 3 番目。これをAdobe 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'

Adobe 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

これにより、必要な 3 つの部分がキャプチャされ、残りの文字列は無視されます。

パーツにアクセスするには、それぞれ \1、\2\、\3 を使用します。

于 2012-09-01T15:22:47.377 に答える