引用符"
と.pdf
。の間にある文字列を抽出しようとしています。たとえば、"../matlab/license_admin.pdf" abc "vfv"
->../matlab/license_admin.pdf
および"license_admin.pdf" xyz'
-> license_admin.pdf
。次のコードを試してみます。
import re
base = '"../matlab/license_admin.pdf" abc "vfv"'
base1 = '"license_admin.pdf" xyz'
result = re.findall(r'\b(\S+\.pdf)\b', base)
result1 = re.findall(r'\b(\S+\.pdf)\b', base1)
print(result)
print(result1)
しかし、それは私の2番目の例でのみ機能します。../
私の最初のコードは削除します:
\b(\S+\.pdf)\b
目標を達成するために正規表現を変更するのを手伝っていただけませんか。どうもありがとうございます!
使用する
import re
bases = ['"../matlab/license_admin.pdf" abc "vfv"', '"license_admin.pdf" xyz']
for base in bases:
m = re.search(r'"(.*?\.pdf)', base)
if m:
print(m.group(1))
出力:
../matlab/license_admin.pdf
license_admin.pdf
"(.*?\.pdf)
パターンマッチは"
、その後、その後、できるだけ少ないように、グループ1に任意の0以上の文字が、改行文字を取り込み、そして.pdf
。を使用re.search
すると、最初の一致が得られm.group(1)
、グループ1の値にアクセスします。
正規表現のデモを参照してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加