お世話になります。
正規表現についてご相談させてください。
先日、こちらで質問させていただきましたが、要件を詰め直したため改めて質問させていただきます。
https://teratail.com/questions/165649
やろうとしていること
①文章があり、その文章を区切り文字で区切ります。
②その区切った単位で、該当する語句にマッチするかの正規表現チェックを行いたい。
③②では複数の語句にマッチするかを見て、判定結果を導き出したい。
解決したいこと(相談内容)
文章を区切るのと、複数の語句にマッチするかの正規表現チェックを一つの正規表現の構文で行いたいです。
その書き方で詰まっています。
①その書き方をご教示いただきたいです。
②もし一つの正規表現でできない場合は、以下の観点でどこまで正規表現でできるかご教示いただきたいです。
例えば
「文章を区切るのと、複数ではないが1つの語句にマッチする正規表現は1つの構文で可能」
「文章を区切るのはプログラム、複数の語句にマッチするかは正規表現、複数の語句にマッチした結果の判定はプログラム、ならできます」
などです。
条件含め、以下に区切り文字で区切りたい文章と、マッチさせたい語句を記述します。
文章
取りに来ていただける方のみ、ご購入をお待ちしております! 取りに来ていただけるのであれば、直接受け渡しが可能です。 よろしくお願いいたします。
マッチさせたい語句
部分一致です。
ただし、マッチさせたい語句を一つの正規表現にまとめずにが条件としてあります。
ワード1: 取りに来て
正規表現: /^(?=.取りに来て).$/
ワード2: 受け渡し
正規表現: /^(?=.受け渡し).$/
文章を区切り文字で区切る
区切り文字: 「。」 or 「¥n(改行)」
前出の文章を区切り文字で区切った場合、①〜③の対象に切り分けられる。
この①〜③に分ける+それぞれに対し正規表現で該当した文字が入っているかのチェックを1つの構文でチェックをしたい。
①取りに来ていただける方のみ、ご購入をお待ちしております! ②取りに来ていただけるのであれば、直接受け渡しも可能です。 ③よろしくお願いいたします。
期待結果
このサンプルで言うと、
①は、「ワード1: 取りに来て」のみ該当するため → 偽
②は、「ワード1: 取りに来て」、「ワード2: 受け渡し」の両方が該当するため → 真
③は、ワードに該当しないため → 偽
この①〜③を受けて、真と判定したい。
(真と判定できる区切られた文章が一つでもあれば真)
言語
なし
(マーケターの部署で使うため)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/25 09:01