2017-04-23 12 views
1

ここで私は何をしようとしているのです存在するときは対応するバックスラッシュを含む(明らかに)オプションであり、これはオプションです。私はそれをすることができますか?ノンキャップのグループにいてもいいですか?私は今は十分ではないことを示すように見えた。可能であれば、誰かに説明してもらいたいので、私は完全に理解しようとすることができます。オプションの正規表現文字列/パターンのセクションでは、

は、ここに私の正規表現文字列(複数可)試さだとせいぜい現在、オプションの存在と2番目のURL文字列に一致:ここ

^https:\/\/([a-z]{0,2})\.?blah\.com(?:\/)(.*)\/required\/B([A-Z0-9]{9}).* 
^https:\/\/([a-z]{0,2})\.?blah\.com(\/)?(.*)\/required\/B([A-Z0-9]{9}).* 
^https:\/\/([a-z]{0,2})\.?blah\.com(?:\/)?(.*)?\/required\/B([A-Z0-9]{9}).* 

は、私はグループ2 & 3をキャプチャしたい2つのURLが1で、であり、 2はオプションですが、$ 2が問題です。私は上記のすべての文字列を試してきましたが、オプション文字列が存在しないときに文字列に一致する文字列をまだ取得していないので、バックスラッシュにする必要があります。オプションのパターンの一部を作る

https://blah.com/required/B7BG0Z0GU1A 
https://blah.com/optional/required/B7BG0Z0GU1A 
+1

方法について 'httpsの?: \/\ /([^ /] +)。*?\ /必要な\ /(。+) '](https://regex101.com/r/F3qVrO/1) – Jan

+1

私はので、大量のテキストを削除スタックオーバーフローは本当に怒りのための良い場所ではありません:)質問から気を散らす。質問は期待された出力が欠けているので、私は私の答えが間違っている可能性があります。期待どおりの出力を追加できますか?何をキャプチャする必要がありますか?有効でないものは何ですか? – Kobi

+0

私は本当にただの文字列は、非キャップ群であるか否か、オプションの正規表現の部分を作成する方法の例で説明して答えを期待していたよりも多くを望んで尋ねたし、あなたの文字列は、私にはちょうどJapeneseとしてそのまま私が思いついたものはうまくいかなかったからです。 :)しかし、文字列をありがとう!なぜ私の質問/説明のほとんどが実際に削除されたのか混乱しています。なぜなら、あなたが削除したものを読んだら、なぜこれがS.O. NONEは実際に答えるだけで文字列を提供しますが、質問の2/3がLOLでも削除されました。 :) –

答えて

1

?を追加するのと同じくらい簡単ですし、あなたの最後の2回の試行作業の両方:https://regex101.com/r/RIKvYY/1

あなたの間違いは、あなたのテストが間違っているということです - あなたは一致する^を使用しています文字列の先頭。それぞれの行の先頭に一致させるには、add the /m flag (multiline)が必要です。これはあなたのパターンは(例えば、//required)二行目...あなたは2つのスラッシュを許可している

注意と一致することはありません理由です。 (あなたが.*を使用している限り、もちろんあなたはまだ複数のスラッシュを一致させることができます)あなたが最初のスラッシュと同じキャプチャグループへのオプションの一部を結合して、それを解決することができます:

https:\/\/([a-z]{0,2})\.?blah\.com(?:\/(.*))?\/required\/B([A-Z0-9]{9}).* 
+0

いいえ、私は何かが不足している場合を除き、私はそれらの文字列に対してループで複数回(一度に)正規表現を実行しています。しかし、あなたの答えが正しいと私はこの質問に転送するとき、私は明らかに、私は正直にRANを持ってはならないというのが私のリストにあった第三正規表現文字列を貼り付け - あなたが指摘するように、それは正しいされているために。その間に追加の2番目の疑問符を付けて走ったことはありませんでした。だから、司会者が削除した私の質問(実際には2/3)の部分では、本当にサブストリング後のQUESTION MARKはグループ内であろうとなかろうとオプションであるのでしょうか? –

+0

EDIT:あなたは絶対に正しいと、それは私が間違ってやってきた一つのことですが、私の正規表現の100%が、それはサイトのことだもつともシングルラインであるため、それがsay-あたりの正規表現のものではありません...regex101とway regexは本質的にJSを一度リストなしで実行しなければならないときにKEYを動作させますが、それはmutlilineです。本当に私はこれらの文字列をすべて試したときに決してチェックアウトしなかったと思います。 、第2は決してマッチしなかった。 :) 本当にありがとう!そして、私が今までに複数行の正規表現を実行する必要がある場合、あなたは私に何が足りなかったのか教えてくれました! +1 –