-4

文字列にこれらの文字が含まれているかどうかをプログラムに確認させたい場合は、どうすればよいですか。例を作ってみましょう: 私はそれらの文字を省きたいです:'*',':','&','=',... そして、私が使用するコードは次のとおりです:

if(!($line =~ /(\*|\:|\&)/)){

しかし、コンパイルしようとするとエラーが発生します。

Unknown verb pattern '|a' in regex; marked by <-- HERE in m/(*|,|&|:) <-- HERE / 
at busquedas.pl line 10.

私を信じていない人のためのエラー ;) ありがとう。ここに画像の説明を入力

4

2 に答える 2

0

エラーが発生しません。それを取得する唯一の方法は、開き括弧の直後に*.

$ perl -we 'if(!($line =~ /(\*|\:|\&)/)){}' 
Name "main::line" used only once: possible typo at -e line 1.
Use of uninitialized value $line in pattern match (m//) at -e line 1.
$ perl -we 'if(!($line =~ /(*|\:|\&)/)){}' 
Unknown verb pattern '|\' in regex; marked by <-- HERE in m/(*|\:|\&) <-- HERE / at -e line 1.

どのようにコードを実行しますか? エラーが発生する行を本当に貼り付けましたか?

splain言います:

Unknown verb pattern '' in regex; marked by <-- HERE in m/(*) <-- HERE / at -e
    line 1 (#1)
(F) You either made a typo or have incorrectly put a * quantifier
after an open brace in your pattern.  Check the pattern and review
perlre for details on legal verb patterns.
于 2013-08-14T11:38:13.490 に答える