1

これは一種の奇妙な状況ですが、MATCHES のようなものを使用してフィルタリングする方法を探していますが、未知のパターン (長さは不明) のリストに基づいています。

つまり、指定された入力が 2 つのファイルで、1 つのファイルの番号が A の場合:

xxxx

yyyy

zzzz

ジーイ

...等...

そしてもう一方はパターン B:

xx.*

yyy.*

...等...

2番目のすべてのパターンで最初の入力をフィルタリングするにはどうすればよいですか?

事前にすべてのパターンを知っていれば、 A = FILTER A BY (num MATCHES 'somepattern.*' OR num MATCHES 'someotherpattern'....); を実行できます。

問題は、それらが事前にわからないことです。それらはパターンであり単純な文字列ではないため、結合/グループを使用することはできません (少なくとも私が知る限り)。多分奇妙なネストされたFOREACH...もの?アイデアはありますか?

4

1 に答える 1

3

|として動作するを使用するORと、個々のパターンからパターンを構築できます。

(xx.*|yyy.*|zzzz.*)

これにより、パターンのいずれかに一致するかどうかがチェックされます。

編集: 結合された正規表現パターンを作成するには:
* で始まる文字列を作成し(
ます|
。必要ありません|)
* を追加)

これにより、入力ファイル内のすべてのパターンをチェックする正規表現パターンが作成されます。(注: ファイルには有効なパターンが含まれていると想定されます)

于 2011-04-18T18:07:26.983 に答える