1

これはよく繰り返される質問ですが、どういうわけか、以前の回答が私の要件に完全に一致していることがわかりませんでした。文字列があります

私の名前はパヴァンです。私はいい子ですか?

a上記の文字列で最初に出現する文字(単語の境界にあるかどうかに関係なく)のみを一致させたい。最も単純な正規表現

a

文字列に存在する4つすべてに一致しaます。SOで検索した他のすべての投稿は、欲張りでない一致の使用を提案してい?ます。しかしa+?、欲張りでない一致でさえ4回繰り返されるため、ここでは問題を解決しません。

では、最初の試合の直後に正規表現エンジンを停止するように指示するにはどうすればよいですか?

非常に些細な質問をしたかもしれませんが、正規表現を始めたばかりなので、我慢してください。

PS:結果を確認するために次の2つのエンジンを使用しています

GSkinner

RegexPal

私は特定の言語を使用しておらず、上記のツールを使用して一致を実行しています

4

2 に答える 2

3

正規表現言語の数量詞を、言語/フレームワークが提供するツールと混同しています。通常、すべての一致を返すメソッドと、最初の一致のみを返すメソッド(および正規表現が一致するかどうかをチェックするだけのメソッド)があります。

.NETではRegex.Matches、すべての一致を検索し、最初の一致のみを検索し、正規表現が一致するかどうかを判断するためにRegex.Match使用できます。Regex.IsMatch

Javaでは、を使用Matcher.findして最初の一致を検索するか、反復してすべてを検索できます。

Pythonにはとがre.searchありre.findallます。

于 2012-07-17T09:43:43.937 に答える
0

この特定の場合:

^[^a]*(a)

ただし、ほとんどの正規表現の実装には、最初の一致のみを返す関数があります。

于 2012-07-17T09:44:19.507 に答える