Mri*_*lla 10 regex oracle plsql
我的正则表达式需要解析一个如下所示的地址:
BLOOKKOKATU 20 A 773 00810 HELSINKI SUOMI
-------------------- ----- -------- -----
1 2 3 4*
Run Code Online (Sandbox Code Playgroud)
第一组,第二组和第三组将始终存在于地址中.第4组可能不存在.我写了一个正则表达式,帮助我得到第一,第二和第三部分,但我还需要第四部分.第4部分是国家名称,可以是FINLAND或SUOMI.如果第四部分不存在于地址中,则第四部分将为空.这是我的正则表达式到目前为止,但第三组也抓住了这个国家.有帮助吗?
(.*?)\s(\d{5})\s(.*)$
Run Code Online (Sandbox Code Playgroud)
(我将使用这个Oracles REGEXP功能)
Nor*_*ard 12
将正则表达式更改为:
(.*?)\s(\d{5})\s(.+?)\s?(FINLAND|SUOMI)?$
Run Code Online (Sandbox Code Playgroud)
使第三组没有贪心会让你匹配可选的空格+国家选择.如果第4组不匹配,我认为它将是未初始化而不是空白,这取决于语言.
要匹配可能存在或不存在的字符(或在您的案例组中),您需要?在有问题的字符/子模式/类之后使用。我现在要回答,是因为RegEx很复杂,应该解释一下:仅发布没有答案的修订是不够的!
问号与零或前面的字符,类或子模式之一匹配。认为这是“上一项是可选的”。例如,因为“ u”是可选的,所以颜色匹配颜色和颜色。
以上引自http://www.autohotkey.com/docs/misc/RegEx-QuickRef.htm
| 归档时间: |
|
| 查看次数: |
32036 次 |
| 最近记录: |