对于大多数人来说这可能非常简单,但我并不擅长正则表达式。
我有一组具有这种格式的字符串:
SYND_YAHOO_7BEST_RANKADDITIONS_268_2357425
因此,基本上我想搜索字符串并提取模式 __###_。请注意,可以是 1 位数字,也可以是 2 位、3 位或 4 位等等。我知道 REGEXP_SUBSTR 可以帮我完成这个任务,只是不确定要使用哪个简单的表达式。
谢谢!
对于大多数人来说这可能非常简单,但我并不擅长正则表达式。
我有一组具有这种格式的字符串:
SYND_YAHOO_7BEST_RANKADDITIONS_268_2357425
因此,基本上我想搜索字符串并提取模式 __###_。请注意,可以是 1 位数字,也可以是 2 位、3 位或 4 位等等。我知道 REGEXP_SUBSTR 可以帮我完成这个任务,只是不确定要使用哪个简单的表达式。
谢谢!
假设
268
是您想要的匹配,一个相当简单的模式就可以起作用。下面返回第一个捕获组中字符串末尾下划线之间的数字组。.*_(\d+)_.*$
https://regex101.com/r/gMCzdD/1
这里的主要关键是我们从
.*
“尽可能多地”积极匹配开始,这意味着我们将捕获下划线之间最后一次出现的数字,即使相同的模式在字符串中较早出现。