私はリスト(配列)とのマッチングにPythonを使用していますが、問題は正規表現そのものにあると確信しています。正規表現が1番目の結果を超えて一致する
私は、次のしていると仮定:
foo.html
bar.html
teep.html
そして、私は、次の正規表現を使用します。.*(?=.html)
.*
は何もマッチします
と(?=.html)
は、文字列が存在する必要がありますが、結果に含めていません
したがって、私はちょうど前のものと一緒に残すべきです.html
私がチェックすると、それだけで(この場合foo
で)配列内の最初の項目に一致するが、なぜ他の人
my_regex = re.compile('.html$')
r2 = re.compile('.*(?=.html)')
start = '/path/to/folder'
os.chdir(start)
a = os.listdir(start)
for item in a:
if my_regex.search(item) != None and os.path.isdir(item):
print 'FOLDER MATCH: '+ item # this is a folder and not a file
starterPath = os.path.abspath(item)
outer_file = starterPath + '/index.html'
outer_js = starterPath + '/outliner.js'
if r2.match(item) != None:
filename = r2.match(item).group() # should give me evertying before .html
makePage(outer_file, outer_js, filename) # self defined function
else:
print item + ': no'
コードを表示してください。 WiktorStribiż[email protected] –
はまあ、 'R – Kervvv
追加 '*(?= \。htmlの)''あなたのためのより良い正規表現であるが、主な問題は、正規表現ではありません。 –