2

正規表現の一部の大文字小文字を無視する簡単な方法はありますか?私はRuby1.9.3とRails3.2.8を使用しています(Railsが役立つかどうかはわかりませんが、言及したいと思います)。

たとえば、文字列が「こんにちは、私の名前はバーソロミュー」であるかどうかを確認したいのですが、バーソロミューが適切な大文字と小文字を区別していることだけを気にしています。私はそれをできた:

/^[Hh][Ee][Ll][Ll][Oo], [Mm][Yy] [Nn][Aa][Mm][Ee] [Ii][Ss] Bartholomew$/

しかし、それはとても苦痛です。文字列全体の大文字と小文字を無視できることを知っています/i

/^hello, my name is bartholomew$/i

しかし、文字列を分割することはできません(正規表現と文字列自体は両方ともユーザーが入力します)。

4

1 に答える 1

9

これを行う1つの方法は、デフォルトで正規表現で大文字と小文字を区別し、区別されないセクションをマークすることです。

> pattern = /(?i:hello, my name is) Bartholomew/
=> /(?i:hello, my name is) Bartholomew/
> pattern =~ 'Hello, my Name is Bartholomew'
=> 0
> pattern =~ 'Hello, my Name is bartholomew'
=> nil

これを行うもう1つの方法は、デフォルトで正規表現で大文字と小文字を区別しないようにし、機密セクションにマークを付けることです。

> pattern = /hello, my name is (?-i:Bartholomew)/i
=> /hello, my name is (?-i:Bartholomew)/i
> pattern =~ 'Hello, my Name is Bartholomew'
=> 0
> pattern =~ 'Hello, my Name is bartholomew'
=> nil
于 2012-09-18T18:33:02.177 に答える