C# 用于在c中匹配I.text的正则表达式#

C# 用于在c中匹配I.text的正则表达式#,c#,regex,roman-numerals,C#,Regex,Roman Numerals,我试图用c#将PDF解析为XML,我想提取如下标题:I.简介,II。从我的文件中按罗马数字分类的页面布局。我想写一个正则表达式来匹配这样的字符串。我尝试了一些方法,但都不起作用,有人能帮忙吗?这是一个简单的方法 \b[IVX]+。[A-Z]+ 这是最简单的一个 \b[IVX]+。[A-Z]+ 这应该满足您的需要: [IVXLCDM]+。[A-Z]+ 如上所述: \。将匹配句点,因为句点字符是正则表达式语法中的特殊字符(表示匹配任何字符) 另一方面,如果要确保字符串仅包含罗马数字和标题名,则可能需

我试图用c#将PDF解析为XML,我想提取如下标题:I.简介,II。从我的文件中按罗马数字分类的页面布局。我想写一个正则表达式来匹配这样的字符串。我尝试了一些方法,但都不起作用,有人能帮忙吗?

这是一个简单的方法

\b[IVX]+。[A-Z]+

这是最简单的一个

\b[IVX]+。[A-Z]+


这应该满足您的需要:

[IVXLCDM]+。[A-Z]+

如上所述:

\。将匹配句点,因为句点字符是正则表达式语法中的特殊字符(表示匹配任何字符)

另一方面,如果要确保字符串仅包含罗马数字和标题名,则可能需要使用以下选项:

^[IVXLCDM]+\. [A-Z ]+$
^
$
称为锚定。
^
指示正则表达式引擎从字符串的最开头开始匹配,而
$
指示正则表达式引擎在字符串的最末尾停止匹配。
罗马数字的完整列表可从

中获得,这将满足您的需要:

[IVXLCDM]+。[A-Z]+

如上所述:

\。将匹配句点,因为句点字符是正则表达式语法中的特殊字符(表示匹配任何字符)

另一方面,如果要确保字符串仅包含罗马数字和标题名,则可能需要使用以下选项:

^[IVXLCDM]+\. [A-Z ]+$
^
$
称为锚定。
^
指示正则表达式引擎从字符串的最开头开始匹配,而
$
指示正则表达式引擎在字符串的最末尾停止匹配。
罗马数字的完整列表可从

中获得,这主要适用于:

^[IVXLCDM]+\. [^\p{Ll}]+?$
这将匹配包含数字和符号的标题,但将明确排除Unicode小写字符

此外,请确保使用选项RegexOptions.Multiline,如下所示:(其中
inp
是您的输入字符串)


这应该主要起作用:

^[IVXLCDM]+\. [^\p{Ll}]+?$
这将匹配包含数字和符号的标题,但将明确排除Unicode小写字符

此外,请确保使用选项RegexOptions.Multiline,如下所示:(其中
inp
是您的输入字符串)