0
[a-zA-Z]_*[a-zA-Z0-9]*  

私が一致させることを目指しているもの:

astring_something;
helloall90

だがしかし :

Astring
_helloall

私の正規表現は、識別子を小文字で始める必要があることで私を保護しています。_ただし、ケースでは機能しません。文字列を渡す:

astring_something;

正しく識別されていません。として識別されastringsomething除外され_ます。

どこで間違いを犯しているのですか?

4

3 に答える 3

2

文字で始まり、その後に0個以上の文字、数字、またはアンダースコアが続くようにしたいと思います。その場合は、アンダースコアを 2 番目の文字セットに移動する必要があります。

変化する:

[a-zA-Z]_*[a-zA-Z0-9]*

に:

[a-zA-Z][a-zA-Z0-9_]*

または、小文字で開始する必要がある場合:

[a-z][a-zA-Z0-9_]*
于 2012-10-18T12:25:33.890 に答える
1

現在、アンダースコアの前の1文字のみに一致しています。

[a-zA-Z]*_[a-zA-Z0-9]*  

それが本当に欲しいかどうかは別の問題です。たとえば、複数のアンダースコアがあるものはどうですか?

于 2012-10-18T12:24:05.767 に答える
0

試す

^[a-z]+_*[a-zA-Z0-9]+

どこ ...

^[a-z]+

1 つ以上の小文字で始まり、その後に ... が続く必要があることを意味します。

_*

0 個以上の _ 文字の後に ... が続く

[a-zA-Z0-9]*

0 個以上の英数字。

このパターンは astring_something と helloall90 に一致しますが、_helloall と Astring には一致しません

于 2012-10-18T19:32:45.837 に答える