[英]Need to update my regex pattern to match roman numerals
我正在使用以下模式: [ ]\\bM{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})\\b
匹配字符串中的所有罗马数字。 以下是一些我需要的示例:
string1 VI STRING4 I STRING5 1340 I 2 STRING6 III STRING7 V STRING11 STRING12 VI STRING13! IX STRING14 VI . STRING15 - STRING16_ V STRING17 1/2 VI STRING18 VIII XIII (2011) V (2012) String19 VP XII
将导致:
string1 STRING4 STRING5 1340 2 STRING6 STRING7 STRING11 STRING12 STRING13! STRING14 . STRING15 - STRING16_ STRING17 1/2 STRING18 XIII (2011) V (2012) String19 VP XII
现在的问题是我有以下字符串: WORD1 DI WORD2
和上面的模式匹配DI
。 但是我希望保留它: WORD1 DI WORD2
,所以我只想在字符串的末尾匹配罗马数字(除非只有一个像XII
单词)。
所以我仍然想保留上面的结果,但是我需要添加一条规则来获得此结果:
WORD1 DI WORD2
> WORD1 DI WORD2
有什么帮助吗?
谢谢
这就是我要使用的:
$result = preg_replace("/\s(I|V|X|L|M|D|C)+$/gm", "", $str);
这为您的示例提供了预期的结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.