作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试从包含标题、段落等的文本中删除有效的罗马数字(编号)...
我正在使用这个正则表达式:
Pattern ROMAN = Pattern.compile("^[([]?x{0,3}(i[xv]|v?i{0,3})[)\.]/]{1,2}", Pattern.CASE_INSENSITIVE);
虽然它也匹配空括号。
我想做的是删除以下内容:
Input :
iv. foo foo foo.
Output:
foo foo foo.
Input :
v) foo foo foo.
Output:
foo foo foo.
但在不使用它们进行编号时也什么都不做:
Input :
foo foo foo i) foo v) .
Output:
foo foo foo i) foo v) .
正则表达式应该匹配的另一个例子:iv)
X)
ix/
V/
x.
IV.
最佳答案
像下面这样的东西怎么样Regex :
^((?=[mdclxvi])m*(c[md]|d?c{0,3})(x[cl]|l?x{0,3})(i[xv]|v?i{0,3})(?:\)|\.))
这匹配一个罗马数字,后面跟着 )
或 .
字符。有一篇关于匹配罗马数字的好文章 Regular Expressions Cookbook作者:Steven Levithan,O'Reilly 的 Jan Goyvaerts。
关于java - 使用罗马数字删除编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56147872/
我正在 prolog 中完成一项作业扫描数字列表并应返回该列表是否是有效的罗马数字以及数字的十进制值。例如) 1 ?- roman(N, ['I'], []). N = 1 true. 2 ?- 当我
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我正在尝试将字符串分成多个部分以读取罗马数字。例如,如果用户输入 "XI" 我希望程序能够理解我是 1,X 是 10,这样才能进行数据验证。 if(string roman == "X") int r
我是一名优秀的程序员,十分优秀!