大文字のローマ数字が変換されないようにしながら、すべての大文字の単語を小文字に変換する単一の正規表現を作成しようとしています。
私が見つけた唯一の方法は、スペース、コンマ、またはピリオドが後に続くすべての大文字の単語、およびハイフンでつながれた単語をすべて小文字に変換することでした。次に、すべてのローマ数字を大文字に戻します。
これを使用して小文字に変換しました:
(\u+[ ,.-])
次に、疑わしいローマ数字をすべて見つけて交換する必要がありました。
これを行うためのより良い方法は何ですか? 運がなかった否定的な先読み表現を試しましたが、それらを書くのはあまり得意ではありません。
私がこれをテストしているサンプルは、米国憲法です。入力のサンプルを次に示します。
私たち米国の人々は、より完全な連合を形成し、正義を確立し、国内の平和を確保し、共通の防衛を提供し、一般的な福祉を促進し、自由の祝福を私たち自身と私たちの子孫に確保するために、次のように定めます。アメリカ合衆国のためにこの憲法を制定する。
第 1 条
宗派。1. ここに付与されたすべての立法権は、上院と下院で構成される米国議会に付与されるものとする。
宗派。2. 下院は、いくつかの州の全国民によって 2 年ごとに選ばれる議員で構成されるものとし、各州の選挙人は、州議会の最も人口の多い支部の選挙人に必要な資格を有するものとする。25 歳に達せず、合衆国市民として 7 年間過ごしていない者、および選出された時点でその者が所在する州の住民でない者は、下院議員であってはならない。選ばれました。
第四条。
第5条
第6条。