私は分離しなければならない
D= d1| d2|...|dn
と
F=f1|f2|...|fn
現時点では、次のようなifステートメントでこれら2つの正規表現をチェックしています。
if (($text_to_search =~ $D) && ($text_to_search !~ $F))
F を否定するにはどうすればよいですか? 選言全体または F のすべての選言に対して否定的なルックアラウンドを使用することは可能ですか?
私はこのように見えるはずです:
regexp = (d1)| (d2) | (d3) ... (dn) | NOT (f1) | NOT (f2) | ... | Not (fn)
最初の単一の文字だけでなく、パターンを否定するために括弧が必要ですよね?
編集: たとえば、D は:a|b|c|d
で、F は:1|2|3
動作は次のようになります。
input: "abc" --> accepted
input: "a" --> accepted
input: "abc1" --> Not accepted
input: "2" --> NOT accepted
input: "a2bc1" --> Not accepted
(input: "xyz999" --> does not match - shouldn't be accepted)
F-disjunct は、「入力シーケンスでこれを見たときに一致しない」のようにする必要があります