1

さまざまなタイトルのテキスト入力フィールドがあり、検索結果の偽陰性を最小限に抑えるために (内部検索は最適ではありません)、入力文字列の最初の 4 文字を見て、単語 (および単語の後のスペース) _the _ が先頭にのみある場合。

たとえば、バンドの名前について話しているときに、誰かがThe Rolling Stonesと入力した場合、エントリにRolling Stonesのみを入力する必要があります。

これらの 4 文字を自動的に除去するために正規表現を使用できますか?

4

3 に答える 3

3

識別子を使用^して行頭のパターンに一致させることができますが、これを使用している目的については、やり過ぎと見なすことができます。

多くの言語が文字列操作をサポートしていますが、これはより適切な選択です。Pythonでデモンストレーションする例を提供できます。

>>> def func(n):
    n = n[4:len(n)] if n[0:4] == "The " else n  
    return n

>>> func("The Rolling Stones")
'Rolling Stones'
>>> func("They Might Be Giants")
'They Might Be Giants'
于 2010-10-16T19:25:45.933 に答える
3

正規表現の適用

^(?:\s*the\s*)?(.*)$

任意の文字列に一致し、後方参照番号でキャプチャします。1、the(オプションで空白で囲まれている) で始まる場合を除き、その場合は backref no. 1 には、以下の内容が含まれます。

これを機能させるには、正規表現エンジンで大文字と小文字を区別しないオプションを設定する必要があります。

于 2010-10-16T20:30:05.560 に答える
1

言語で明確にしないので、Perl での解決策を次に示します。

my $str = "The Rolling Stones";

$str =~ s/^the //i;

say $str; # Rolling Stones
于 2010-10-17T12:40:55.533 に答える