「A」、「B」、「C」を返す方法を見つけようとしています。私は、次の正規表現を使用してみました複数のマッチグループを返す
:stringの
{{(?:\|\[\[([a-zA-Z\s]+)+\]\])+}}
:
{{|[[A]]|[[B]]|[[C]]}}
しかし、これまでほとんど成功。
多くのありがとうございます。
「A」、「B」、「C」を返す方法を見つけようとしています。私は、次の正規表現を使用してみました複数のマッチグループを返す
:stringの
{{(?:\|\[\[([a-zA-Z\s]+)+\]\])+}}
:
{{|[[A]]|[[B]]|[[C]]}}
しかし、これまでほとんど成功。
多くのありがとうございます。
注意を([a-zA-Z\s]+)+
は明らかに人為的ミスであること - が存在していませんすでに+
- 定量されている単一の原子を有するグループを定量化することを指す。
あなたはあなたの少しの固定正規表現とだけアクセスグループ1 captures
使用することができますは、PyPIの正規表現モジュールを使用することができた場合:
>>> import regex
>>> pat = r"{{(?:\|\[\[([a-zA-Z\s]+)]])+}}"
>>> s = "{{|[[A]]|[[B]]|[[C]]}}"
>>> res = regex.fullmatch(pat, s)
>>> print(res.captures(1))
['A', 'B', 'C']
を、あなたは2段階のアプローチを使用する必要があります:1の場合)をチェック文字列全体が必要なパターンと一致し、2)\|\[\[([a-zA-Z\s]+)]]
とre.findall
を使用すると、複数の一致が必要になります。
>>> res = []
>>> if re.search(r"^{{(?:\|\[\[([a-zA-Z\s]+)]])+}}$", s):
res = re.findall(r"\|\[\[([a-zA-Z\s]+)]]", s)
>>> print(res)
['A', 'B', 'C']
完璧、ありがとう。 – user3287037
それぞれに手紙を収容するための最初のグループを見つけると一致する場合には、(繰り返しなし)正規表現\|\[\[[a-zA-Z\s]+\]\]
を使用して複数の一致を探します。http://regexr.com/3eksj
新規内容... {{[[A]] | [[B]] | [[C]]}}などの文字列から角括弧内のコンテンツを抽出しようとしていますその文字列がそのパターンに従っていることを検証しながら。 – user3287037
@bobblebubble固定tnx、ちょうど元を取った – Uriel
私は文字列だけでなく、文字列全体を返すことがわかります。あなたは手紙を返事しますか? – BlackHatSamurai
あなたは['\ | \ [\ [([a-zA-Z \ s] +)\] \]'](https://regex101.com/r/IBfGo6/1)を必要とし、複数のマッチを取得します。あなたが使っているプログラミング言語は何ですか? '([a-zA-Z \ s] +)+'は明らかに人為的なエラーであることに注意してください。すでにグループ化されている単一の原子を持つグループを定量化することはできません。 –
文字列が{{[[A]] | [[B]] | [[C]]}}の場合はどうなりますか? – user3287037