gpt4 book ai didi

java - 使用罗马数字删除编号

转载 作者:搜寻专家 更新时间:2023-11-01 03:15:25 25 4
gpt4 key购买 nike

我正在尝试从包含标题、段落等的文本中删除有效的罗马数字(编号)...

我正在使用这个正则表达式:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com