正则表达式替换正在吞噬整个字符串!我如何使regex ungreedy?

正则表达式替换正在吞噬整个字符串!我如何使regex ungreedy?,regex,openoffice.org,openoffice-calc,Regex,Openoffice.org,Openoffice Calc,我在OpenOffice中处理一个非常大的spreedsheet,我必须学习正则表达式来清理它 现在,我正在尝试删除所有的标记,我想出了一个表达式: (<span.*?>|</span>) (|) 问题是OpenOffice似乎不喜欢问号(这应该会使它不可见),所以当我尝试删除标记时,它会删除我的大部分字符串 以下是数据示例: 在OpenOffice的find and replace中,重新混合标记的替代方法是什么?尝试一下: <(\/)?span([a-zA-

我在OpenOffice中处理一个非常大的spreedsheet,我必须学习正则表达式来清理它

现在,我正在尝试删除所有的
标记,我想出了一个表达式:

(<span.*?>|</span>)
(|)
问题是OpenOffice似乎不喜欢问号(这应该会使它不可见),所以当我尝试删除
标记时,它会删除我的大部分字符串

以下是数据示例:

在OpenOffice的find and replace中,重新混合
标记的替代方法是什么?

尝试一下:

<(\/)?span([a-zA-z\-\="0-9 ]*)?>

您也可以尝试
(]*>|)

如果您观察到
*?
仍然是贪婪的,那么它将指出这样一个事实:正则表达式不是作为perl兼容的正则表达式(PCRE)读取的,而是作为,例如,基本/扩展/POSIX正则表达式(没有人知道
非greedify
*
的修饰符),OpenOffice是基于Java的。如果它没有使用Java正则表达式引擎,我会感到惊讶。我不知道那里发生了什么事,这就成功了。非常感谢。如果你不介意我问的话,
[^>]*
是什么意思?我知道
[^>]
将匹配第一个
,但是如果
*
表示0或更多,那么为什么需要它呢?
[]
是字符类<代码>[abcd]
表示“从a、b、c或d输入中精确匹配一个字符”
[^]
是负数字符类,表示“匹配不在类中的任何一个字符”。我告诉它“匹配任意数量的非'>'字符,然后匹配'>'