私は今朝これで苦労しています。いくつかの正規表現の達人が私を正しい方向に向けることができますように。基本的に、私は2つの文字列の値を比較する正規表現を使用しています。同じ正規表現を両方の文字列に適用する必要があります。すべての名前付きグループのすべての値が一致する場合、同等の文字列(この名前付きグループチェックはコード内で行われます)が考慮されます。名前付きキャプチャ2つのバリエーションを持つ正規表現
文字列の場合、 "jw-cst"のように "cst"と比較する必要があります。私が必要とする正規表現は、これらの同等のものを考慮する必要があります。以前のものと同様に、 ' - 'を含めて名前付きグループに取り込むべきではありません。
そう...
JW-CST - >キャプチャグループ値= "CST" CST - >キャプチャグループ値= "CST"
キャプチャグループの名前は、アプリ無関係です私はそれぞれのグループを介して単純なループを使って作業しています。両方の結果が一致していることを確認します。 (?。。。 - | *)(< = )
しかし、それは第二の一致条件を使用しているようだ...ので、必ず戻っ
:
は、これまでのところ私はこれを持っています"cst"の代わりに "jw-cst"を使用します。 2番目の選択肢(。*)を削除すると、正しく一致します...どんな助けでも大歓迎です。
あなたが取り組んでいるのはその種類の文字列ですか?この場合、単純な '/-(()*)$/'で十分でしょう。しかし、私はそれがもっと複雑だと確信しています。あなたは本当の文字列を提供することができますし、あなたは何を期待していますか? – Pierre
良い入力と悪い入力の両方の具体的かつ完全な例を挙げる必要があります。 – tchrist
1組の文字列はすべて2文字または3文字(イニシャル、BLまたはMRK)になり、もう1組の文字列は前と同じ(イニシャル、BLまたはMRK)か、2つのイニシャルの組み合わせになります、決してそれ以上(すなわち、BL-MRKまたはDLN-MRK)。私はイニシャルの2番目のセットと常に一致します(つまり、文字列がBL-MRKの場合、MRK部分のみに興味があります)。 例: 1)ALK 2)ALKキャプチャ:ALK 1)BLK-CRS 2)CRSキャプチャ:CRS 1)DN-ELB 2)ELBキャプチャ:ELB 1)FN-GA 2)GAキャプチャ:GA – Jason