0

州コードの文字列をテストしようとしています。私が持っている正規表現は

^A[LKSZRAEP]|C[AOT]|D[EC]|F[LM]|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEHINOPST]|N[CDEHJMVY]|O[HKR]|P[ARW]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY]$

問題は、テスト文字列として「CTA12」のようなものがある場合、CT と一致することです。より大きな文字列の一部ではない州コードのみに一致するように正規表現を変更するにはどうすればよいですか?

4

1 に答える 1

3

交互に使用するアンカーの使用は正しくありません。つまり、 ^AB|DC$「で始まるABまたは終わる文字列」を意味しDCます。^とを$両方を交互の各要素に適用するには、たとえば、交互をグループに入れる必要があります^(AB|DC)$

正規表現を次のように変更してみてください。

^(A[LKSZRAEP]|C[AOT]|D[EC]|F[LM]|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEHINOPST]|N[CDEHJMVY]|O[HKR]|P[ARW]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$

たとえば、グループを使用する代わりに、^とを各要素の一部として交互に配置することもできますが、これにより正規表現が大幅に長くなるため、グループを使用することができます。$^AB$|^DC$

于 2013-02-21T19:48:31.243 に答える