2016-12-01 4 views
-1

私はかなり奇妙な状況では正規表現初心者です。私は引用符で囲まれていないすべての一桁数字(具体的には1-9、私はゼロは必要ありません)にマッチさせようとしています。引用符がない場合にのみ正規表現を使用してください

たとえばのは、私は次の文字列を持っているとしましょう:"1" or 1 ?

私は1ではなく"1"と一致する必要があります。

アイデア?

答えて

1

私はPythonでこれを説明しましょう:

import re 
pattern = re.compile('(?<!"|\d)\d(?!"|\d)') 
print(pattern.findall('1,"2",34,5')) 
# ['1', '5'] 

この正規表現((?<!"|\d)\d(?!"|\d))の重要な部分は否定先読み(?!)と負の後読み(?<!)です。正規表現エンジンが固定長文字列にマッチするのを防ぐために使用されます。説明はで見つけることができ

より:http://www.regular-expressions.info/lookaround.html

+0

ありがとうございました! –

関連する問題