[解決済み] Apache Pig - 複数のマッチ条件でのMATCHES
2022-02-07 10:15:14
質問
のような論理的なマッチング条件を取ろうとしています。
(("Foo" OR "Foo Bar" OR FooBar) AND ("test" OR "testA" OR "TestB")) OR TestZ
を使用して、pig のファイルに対するマッチとしてこれを適用します。
result = filter inputfields by text matches (some regex expression here));
問題は、上記の論理式をmatchesメソッド用の正規表現に変換する方法がわからないことです。
いろいろといじくりまわして、一番近いのはこんな感じです。
((?=.*?\bFoo\b | \bFoo Bar\b))(?=.*?\bTestZ\b)
何かアイデアはありますか?また、可能であればこの変換をプログラムで行うようにしたいのですが。
いくつか例を挙げます。
a - 素早い茶色のフーは怠惰なテストを飛び越えた (これは foo と test を含むのでパスするはずです)
b - the was something going on in TestZ (これはtestZを含むので、これもパスです)
c - the quick brown Foo jumped over the lazy dog (これはFooを含むがtest,testA,testBを含まないので失敗するはずである)
ありがとうございます。
解決方法は?
Pig を使っているので、複雑な正規表現は必要ありません。pig が提供するブール演算子と、いくつかの簡単な正規表現を組み合わせて使うことができます。
T = load 'matches.txt' as (str:chararray);
F = filter T by ((str matches '.*(Foo|Foo Bar|FooBar).*' and str matches '.*(test|testA|TestB).*') or str matches '.*TestZ.*');
dump F;
関連
-
[解決済み】不正なエスケープ文字"㊧"について
-
[解決済み】"比較メソッドはその一般契約に違反する!"
-
[解決済み] 解決済み】Javaが「型をインスタンス化できない」というエラーを返す [重複] [重複]
-
[解決済み] メソッドがそのスーパークラスのメソッドをオーバーライドしない
-
[解決済み】なぜjava.io.Fileにはcloseメソッドがないのでしょうか?
-
[解決済み】Hibernateの例外「failed to lazily initialize a collection of role」の解決方法
-
[解決済み】純粋なJUnitテストにVisibleForTestingを使用する方法
-
[解決済み】Javaの".class expected "について
-
[解決済み] 貪欲 vs. 渋い vs. 所有格の修飾語
-
[解決済み] ある文字列の後に他の文字列が続かない場合にマッチする正規表現
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] java.sql.SQLException: ユーザー 'root'@'localhost' (using password: YES) のためのアクセスが拒否されました。
-
[解決済み】エラー:配列または java.lang.Iterable のインスタンスに対してのみ反復処理を行うことができます。
-
[解決済み】不正なエスケープ文字"㊧"について
-
[解決済み】 java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver [重複]。
-
[解決済み】Eclipseがエラーメッセージ "Java was started but returned exit code = 1" を返す
-
[解決済み】-XX:MaxPermSizeは何をするのですか?
-
[解決済み】メソッド本体がない、またはJavaで抽象的な宣言をする
-
[解決済み] intellijが自動配線リポジトリにタイプのBeanが見つからないと不正確な発言をする件
-
[解決済み] テスト
-
[解決済み] "java.nio.charset.MalformedInputException" を避けるために、すべての包括的なCharset。入力の長さ= 1"?