我正在尝试从包含标题,段落等的文本中删除有效的罗马数字(编号)。
我正在使用此 regex :
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.
答案 0 :(得分:1)
类似于以下Regex的事情:
^((?=[mdclxvi])m*(c[md]|d?c{0,3})(x[cl]|l?x{0,3})(i[xv]|v?i{0,3})(?:\)|\.))
这与罗马数字匹配,后跟)
或.
个字符。 O'Reilly的Jan Goyvaerts的Steven Levithan有一篇不错的文章,介绍了如何匹配罗马数字Regular Expressions Cookbook。
答案 1 :(得分:1)
以下正则表达式可以实现:
"query": "(pizza oven and\/or pizza) OR (bread)"
^
|