2

ファイルからユーザー名を一致させようとしています。それは次のようなものです:

ユーザー名=asd123 password123

等々。

私は正規表現を使用しています:

username=(.*) password

ユーザー名を取得します。ただし、ユーザー名が say and[ers] などの場合は一致しません。ブラケットと一致しません。これに対する解決策はありますか?

4

2 に答える 2

1

あなたの正規表現は正しいです。代わりに、これを試すことができます:

username=([][[:alpha:]]*) password

[ ][[:alpha:]]]、 および[[:alpha:]が括弧内に含まれていることを意味します。

于 2010-08-12T01:08:49.753 に答える
1

私はおそらく正規表現を使用します:

username=([a-zA-Z0-9\[\]]+) password

または似たようなもの。これに関する注意事項:

  • ブラケットをエスケープすると、リテラル ブラケットが得られます。
  • スパンはa-zA-Z0-9英数字に一致します(例のように、alphanumercでした)。したがって、これは任意の英数字または括弧と一致します。
  • 修飾子により、少なくとも 1 文字+と一致することが保証されます。( Kleene star )はゼロの繰り返しを許可します。つまり、空の文字列を有効なユーザー名として受け入れることを意味します。*
  • RegexKitLite が POSIX クラスを許可しているかどうかはわかりません。その場合は、[:alnum:]代わりに使用できますa-zA-Z0-9。ただし、上で示したものは、機能しない場合でも機能するはずです。

または、ユーザー名に括弧を使用することを禁止します。それらは本当に必要ありません、IMO。

于 2010-08-12T01:31:58.857 に答える