1

r'#\w+'ツイートから一連のハッシュタグ ( ) を蓄積できるように正規表現をコンパイルしようとしています。ツイートの開始と終了からこれを実行できる 2 つの正規表現をコンパイルできるようにしたいと考えています。私はpython 272を使用していますが、コードは次のようになります。

HASHTAG_SEQ_REGEX_PATTERN           = r"""
(                                       #Outermost grouping to match overall regex
#\w+                                    #The hashtag matching. It's a valid combination of \w+
([:\s,]*#\w+)*                          #This is an optional (0 or more) sequence of hashtags separated by [\s,:]*
)                                       #Closing parenthesis of outermost grouping to match overall regex
"""

LEFT_HASHTAG_REGEX_SEQ      = re.compile('^' + HASHTAG_SEQ_REGEX_PATTERN , re.VERBOSE | re.IGNORECASE)

正規表現をコンパイルしている行が実行されると、次のエラーが発生します。

sre_constants.error: unbalanced parenthesis

正規表現パターンに見られる不均衡な括弧がないため、なぜこれが得られるのかわかりません。

4

4 に答える 4

5

この行は、 FIRST の直後にコメント アウトされています#

        v----comment starts here
([:\s,]*#\w+)*  ...

エスケープする:

([:\s,]*\#\w+)*  

この行もそうですが、括弧のバランスが崩れることはありません:)

v----escape me
#\w+                                    #The hashtag matching ... 

 

HASHTAG_SEQ_REGEX_PATTERN           = r"""
(                 # Outermost grouping to match overall regex
\#\w+             # The hashtag matching. It's a valid combination of \w+
([:\s,]*\#\w+)*   # This is an optional (0 or more) sequence of hashtags separated by [\s,:]*
)                 # Closing parenthesis of outermost grouping to match overall regex
"""
于 2013-03-07T22:17:26.310 に答える
0

または、コメントを開始することを意図していない記号を正規表現[#]に追加するために使用します。#

HASHTAG_SEQ_REGEX_PATTERN           = r"""
(                   #Outermost grouping to match overall regex
[#]\w+                #The hashtag matching. It's a valid combination of \w+
([:\s,]*[#]\w+)*      #This is an optional (0 or more) sequence of hashtags separated by [\s,:]*
)                   #Closing parenthesis of outermost grouping to match overall regex
"""

これはもう少し読みやすいと思います。

于 2013-03-07T22:25:17.267 に答える