我正在尝试编写一个正则表达式来将所有大写单词转换为小写,同时排除大写罗马数字的转换。
我发现的唯一方法是将后跟空格、逗号或句点的所有大写单词以及带连字符的单词转换为小写。然后将所有罗马数字转换回大写。
我用它来转换为小写:
(\u+[ ,.-])
然后我不得不去寻找并替换所有可疑的罗马数字。
有什么更好的方法来做到这一点?我尝试了没有运气的否定前瞻表达式,但我写它们的能力不是很强。
我正在测试的样本是美国宪法。这是输入的示例:
我们,美国人民,为了建立更完美的联盟,建立正义,确保国内安宁,提供共同防御,促进普遍福利,并确保我们自己和我们的子孙后代获得自由的祝福,请并为美利坚合众国制定本宪法。
第一条。
教派。1. 此处授予的所有立法权应授予美国国会,该国会应由参议院和众议院组成。
教派。2. 众议院由每两年由各州全体人民选出的议员组成,各州的选举人应具备州议会最多分部选举人所需的资格。No person shall be a Representative who shall not have attained to the age of twenty-five years, and been seven years a citizen of the United States, and who shall not, when elected, be an inhabitant of that State in which he shall be选择。
第四条。
第五条。
第六条。