【发布时间】:2015-02-19 13:12:58
【问题描述】:
我正在尝试在 pl/sql 中实现一个正则表达式,它排除任何以字符串开头的结果。
data:
exclude this: 3
include this: 3
3
cvxcvxcv3
34edfgdsfg3
Using this regexp:
(?<!exclude this: )3\d{0}(\s|$)
What I would expect to be returned is:
exclude this: 3 <-- nothing
include this: 3 <- 3
3 <- 3
cvxcvxcv3 <- 3
34edfgdsfg3 <- the second 3 only
34edfgdsfg33 <- the last 3 only
在 notepad++ 中测试时效果很好,但是在 pl/sql 中实现时它不起作用。查看类似的问题,似乎 pl/sql 不完全支持负回溯,但有人知道类似的构造或解决此问题的方法吗?
【问题讨论】:
-
你能解释一下逻辑吗?无法对您的 notepad++ 代码进行逆向工程。
-
目前我有一个可以工作的正则表达式,但是在查看输出时,我发现当前表达式还不够,因为它返回的结果我想进一步过滤掉。例如,如果我目前有 3\d{0}(\s|$) 作为我的正则表达式。除了流氓结果(在这种情况下将是“排除此:3”的条目)之外,将返回的内容将是我想要的。这是我需要的额外过滤。
-
可能是我的问题不清楚。解释你希望如何看待其背后的输出和逻辑?所以你需要用简单的英语解释一下正则表达式背后的逻辑
-
用简单的英语来说,只要它后面没有任何其他东西,这个正则表达式就会查找数字 3。我想要的是还说“给我所有的数字 3,除了数字 3 前面有“排除这个:”的情况 - 也省略这些结果 编辑:当正则表达式在我的示例中构造它确实可以在记事本++中工作,但是 pl/sql 不以相同的方式支持正则表达式 - 我正在寻找答案