3

tjuv (スウェーデン語の泥棒)という単語を見つける正規表現を作成したいと思います。これは、他の単語(例については以下を参照)と組み合わせたり、さまざまな活用形で使用したりできます。

例:

  • cykeltjuv
  • biltjuv
  • tjuvarna
  • inbrottstjuvs

以下のものはtjuvtjuvs(泥棒)で機能しますが、他の活用形や他の単語との組み合わせはどうですか?

/tjuv(?:s){0,1}/ig

少しスウェーデン語を学んだので、正規表現を学んでもらえるのは公平です;-)

編集:より具体的には、実際には、tjuvという単語と一致してはならないと私が考えることができるケースはありません。

私がしているのは、たとえば、tjuvという単語が存在するフレーズを検索することです(英語に翻訳されています)。

1. När en familj kom hem från en utlandssemester upptäckte de att en inbrottstjuv
   hade varit i farten. <- MATCH!

2. På juldagen hade en cykeltjuv varit framme och stulit en cykel. <- MATCH


3. Violer är blå och rosor är röda <- No 'tjuv' and therefor no match
4

3 に答える 3

9

これがあなたが望むものだと思います。「tjuv」という単語と他の文字の前および/または前:

/[a-z]*tjuv[a-z]*/ig

ここRegexrでそれを参照してください

ただし、これ[a-z]はASCII文字aからzのみをカバーする文字クラスです(i修飾子のために大文字と小文字は区別されません)。しかし、スウェーデン語には、その範囲に含まれていない文字もいくつかあると思います。

だからあなたのどちらか

  • 不足している文字を文字クラスに追加します

また

  • \p{L}代わりに使用できる正規表現フレーバーに依存します。

    \p{L}Unicodeコードポイントであり、任意の言語のすべての文字に一致します。その場合、次のようになります。

      /\p{L}*tjuv\p{L}*/ig
    
于 2013-01-17T21:44:45.203 に答える
3

私はそれを考えていません

/.*tjuv.*/ 

いいね。すべてのテキストに一致します。これの方が良い:

\w*(tjuv)\w*

これは、リストのすべての単語に一致します。(そして「tjuv」が含まれているすべての単語i)

于 2013-01-17T21:47:22.960 に答える
2

私が質問を理解している限り、あなたは前後の文字列を含む単語を探していますtjuv。正規表現では、通常、ドットを使用.して任意の文字を表すことができます。したがって、、、、 ...にtjuv.一致tjuvAします。このような文字を任意の数にする場合は、スターを使用します。あなたと一致することができます、、(そして星はゼロ文字に拡大します!)、...tjuvXtjuvs*tjuvs.*tjuvABCtjuvstjuv

だから私は/.*tjuv.*/あなたが望むものかもしれないと思います。ただし、ここで.は空白文字も一致するため、正規表現も一致します。これは、希望どおりsomething xxxtjuvyyy somethingelseでない場合があります。

一致する必要がある(または一致しない)単語をいくつか見るとよい場合があります。それ以上に、使用しているプログラミング言語を指定することをお勧めします。

于 2013-01-17T21:38:03.043 に答える