繁体   English   中英

识别罗马数字后跟“.”、空格和大写字母。 (正则表达式)

[英]Recognize roman numeral followed by '.', space and then capital letter. (RegEx)

有人可以帮我吗?

我正在尝试将罗马数字与“。”匹配。 在末尾,然后是一个空格和一个大写字母。 例如:

I. 这是一条线。

二、 这是另一条线。

X. 这里又是另一行。

因此,正则表达式应该匹配"I. A""II. A""X. H"

我做了这个"^(XC|XL|L?X{0,3})(IX|IV|V?I{0,3}){1,4}\.\s[AZ]"但问题是这个正则表达式也与". A"匹配,我不想要它。

在简历中,它应该至少有一个罗马数字,后跟一个"." 然后是一个空格和一个大写字母。

您需要在开头有一个(?=[LXVI])前瞻,在字符串的开头至少需要一个罗马数字字母:

^(?=[LXVI])(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})\.\s[A-Z]
# ^^^^^^^^^

请参阅正则表达式演示 不知道你为什么使用{1,4} ,我建议删除它。

这里的另一个解决方法是在^之后使用单词边界:

^\b(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})\.\s[A-Z]
#^^

这将不允许匹配 where . \b以来出现在开头,需要与字符串开头相同的 position ,要求下一个字符必须是单词 char (这里,它必须是罗马数字)。

关于\.\s[AZ] ,您可以在\s之后添加+*来增强它,如果您需要匹配它并从匹配中排除,请将其转换为积极的前瞻, (?=\.\s+[AZ])(?=\.\s*[AZ])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM