java 正则表达式 特殊字符

标签 java regex roman-numerals

我使用以下正则表达式来查找字符串中的罗马数字:

^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$ 

如何更改它以检测前面或后面有除句点之外的任何特殊字符的罗马数字?

最佳答案

我会尝试这个表达:

^[@!#%^*()_&-]?M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})[@!#%^*()_&-]?$

开头和结尾的 [@!#%^*()_&-]? 表达式与评论列表中的零个或一个特殊字符匹配。

关于java 正则表达式 特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12094635/

相关文章:

java - 多个 JInternalFrame 之间的共享对象

java - 从加载的类中获取字节码

java - 从 API 提要解析 XML (Java)

java - 使用带花括号的 split() 时出错 "{"

regex - 当正则表达式为变量时,analyzer-string不匹配

java - 访问 Microsoft Graph API 的方式

java - 名字和姓氏的唯一正则表达式

具有两个数组的 Java 到 Mips

html - 在纯CSS中将阿拉伯数字转换为罗马数字

numbers - prolog 将数字转换为罗马数字