0

間に小文字の単語が含まれる大文字のフレーズを (1 つの正規表現で) 一致させるにはどうすればよいですか? 例:

1)。「次の月はカジュアルな 6 月、7 月、8 月ですが、他の月はそうではありません。」

my match should be: "UPPERCASEWORD1, UPPERCASEWORD2, lowercaseword, UPPERCASEWORD3" (i.e.**JUNE, JULY, and AUGUST**) <=== uppercase words with lowercase in between 

2) 「オフィスは土曜から月曜までお休みです。ありがとうございます。」

私の一致は「SATURDAY TO MONDAY」(つまり、「UPPERCASEWORD1 UPPERCASEWORD2 UPPERCASEWORD3」)<==すべて大文字でなければなりません

簡単に言えば、大文字の単語で始まり、大文字の単語で終わるフレーズに一致する正規表現を探していますが、途中に小文字の単語も含まれる可能性があります。

両方を実行できる正規表現が 1 つ必要です。ありがとう!

4

2 に答える 2

1

正規表現は英語を認識しません。したがって、前置詞と句読点についてはわかりません。ただし、正規表現で理解できるルールを定義することはできます。

このように、小文字の数と組み合わせることができる任意の数の大文字とコンマに一致する必要がありますN。小文字の数がすべての前置詞を保持すると仮定します。

([A-Z]+[\sa-z,]{0,N})+[A-Z]+

別のアプローチは、前置詞のリストがある場合、それを正規表現で使用できることです。

([A-Z]+((in|out|or|by|with|and)*[\s,]*)+)+[A-Z]+

しかし、どの単語が前置詞として機能するかわからないため、このリストは信頼できません。英語では、どの単語も前置詞として機能できます。使用場所によって異なります。

于 2012-12-13T00:20:18.030 に答える
0
/(\b[A-Z]+\b[-,\s]+((and|or|is|on|at|to)\s+)*)*\b[A-Z]+\b/g
             ^^^^   ^^^^^^^^^^^^^^^^^^^^
              |              |
 list of delimiters    list of prepositions

たとえば、それらに一致します。要件は非常にあいまいですが、前置詞のリストをのような一般的な一致に簡単に置き換えることができることに注意してください[a-z]+

于 2012-12-13T00:20:41.547 に答える