この正規表現を動作させるためには本当に疲れました。私はsasでperl正規表現を使用しています。誰かが私を助けることができたら、私はそれを大いに感謝します。Perlの正規表現のマッチング:文字列を1つの単語だけにマッチさせる方法、否定的なlookbehindルックアヘッドを使う方法
1 weight
2 weightchange
3 weight change
4 weight percentile
5 change weight
6 percentile weight
7 **** weight pre op
8 water weight
9 weight percentile
10 myocardial infarction
どのように私は
1
ではなく2-9
に一致するように正規表現を使用します。私は3つの質問、テキストの次の行を検討する(行番号は参照用のみあります)がありますか? (先頭にある単語と一致すると同時に終了する方法です?)どのように私は
1
に一致するように正規表現と否定先読み/後読みアサーションを使用して、明示的に2-6
を除外するのでしょうか?7
と8
を除外するにはQ2を解くのに適した正規表現をどのように変更しますか?
ボーナス質問:正規表現を使用してで良いを取得するにはどのくらい時間があなたを取るのですか?
ありがとうございました!
SOは無料のコーディングサービスではありません。あなたが1週間この作業をしていたら、確かにあなたはあなたが望むものに近づいたいくつかの試みがあります。それらを掲示すれば、あなたがそれらを修正するのを手助けすることができます。しかし、私たちはあなたのためにそれをするつもりはありません。 – Barmar
Q1のために '^ weight $'を使うことはできませんか? – Barmar
あなたの(1)は単純なものです( '/^weight \ s * $ /')...そして、その問題は(2)と(3)それらを区別するのに必要なことはありません。あなたが本当にそれを欲しいのであれば、練習として、それはルックアラウンドの基本的な使い方です。たとえば、 '/ weight(?!\ s *(?: change | percentile))/'は 'weight'にマッチします。しかし、あなたは非常に適切な使用のために、素早く基礎を拾うことができます。 //最も重要なことは:あなたの質問をはるかに具体的にしてください - 何が迷惑であるか教えてください。 – zdim