0

わかりました、いくつかの文字列でユニコード正規表現の一致を行っています。

これらは問題の文字列です。2 つの別々の行ではなく、2 つの別々の文字列です。

\u2018Mummy\u2019 Reboot May Get \u2018Mama\u2019 Director

\u2018Glee\u2019 Star Grant Gustin to Play The Flash in \u2018Arrow\u2019 Season 2

そして、この正規表現を使用して、Unicode 引用符で囲まれたタイトルを解析しています。

regex = re.compile("\\u2018[^(?!\\u2018$)]*\\u2019",re.UNICODE)

regex.findall() を使用すると返されます

['u2018Mama\\u2019']

['u2018Glee\\u2019', 'u2018Arrow\\u2019']

これにより、私が理解できなかった2つの質問が発生します。\u2018 を返さないのはなぜですか。最初の \ はどこですか?

第二に、何が違うのか。見えない。最後に、\u2018 と \u2019 を ' に置き換えました。次に、この正規表現を使用します。

re.compile("'[^']*'")

両方の文字列の両方に一致します。ここでの違いは何ですか?ユニコード正規表現で何が欠けていますか?

前もって感謝します。

4

1 に答える 1

1
#coding=utf8

import re

s=u'''\u2018Mummy\u2019 Reboot May Get \u2018Mama\u2019 Director
\u2018Glee\u2019 Star Grant Gustin to Play The Flash in \u2018Arrow\u2019 Season 2'''
print s
regex = re.compile(ur"‘[^(?!‘$)]*’",re.UNICODE)
m = regex.findall(s)
print m

[u'\u2018Mummy\u2019', u'\u2018Mama\u2019', u'\u2018Glee\u2019', u'\u2018Arrow\u2019']

于 2013-09-14T06:18:52.453 に答える