匹配包含 - ,。$ \ /和正则表达式的字符串

时间:2017-01-26 17:07:48

标签: sql regex oracle11g

我正在尝试匹配一个包含 - ,。$ /的字符串(并且可能包含我还不知道的其他特殊字符(使用正则表达式。我必须匹配字符串中的前28个字符

字符串是 - >

Received - Data Migration 1. Units, of UNITED STATES $ CXXX CORPORATION COMMON SHARE STOCK CERTIFICATE NO. 323248 987,837 SHARES PAR VAL $1.00 NOT ADMINISTERED XX XX, XXXSFHIGSKF/XXXX PURPOSES ONLY

我使用的正则表达式是((([\w-,.$\/]+)\s){28}).*

有没有更好的方法来匹配特殊字符?

如果字符串长度小于28,我也会收到错误。如果字符串少于28个字符,我可以做什么来包含范围以便正则表达式工作

代码看起来像这样

Select  regexp_extract(Txn_Desc,'((([\w-,.$;!@\/%)^#<>&*(]+)\s){1,28}).*',1) as Transaction_Short_Desc,Txn_Desc
from Table x

1 个答案:

答案 0 :(得分:1)

看来你正在寻找28个代币。

尝试

(\S+\s+){0,28}

([^ ]+ +){0,28}

这是8个令牌的结果:

Received - Data Migration 1. Units, of UNITED 
|        | |    |         |  |      |  |
1        2 3    4         5  6      7  8