簡體   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