因此,我构建了一个正则表达式,它遵循以下内容:
4!a2!a2!c[3!c]
这被翻译成
- 4 个字母字符后跟
- 2 个字母字符后跟
- 2 个字符后跟
- 3 可选字符
这是 SWIFT BIC 代码 HSBCGB2LXXX 的标准格式
我将其从字符串中提取出来的正则表达式是:
(?<=:32[^:]:)(([a-zA-Z]{4}[a-zA-Z]{2})[0-9][a-zA-Z]{1}[X]{3})
现在这是针对特定标签(32)并且有效,但是,我不确定它是否是最干净的,而且如果在 H 之前有任何字符,那么它会失败。
匹配的字符串是:
:32B:HsBfGB4LXXXHELLO
以下返回HSBCGB4LXXX
,但这:
:32B:2HsBfGB4LXXXHELLO
什么都不返回。
编辑
为了清楚起见。我有一个包含多行的字符串,所有行都以:2xnumber:optional 字母开头(例如:58A:) 我想指定一行开始匹配并从该行的任何位置返回一个BIC。
编辑 更多示例数据以提供帮助:
:20:ABCDERF Z
:23B:CRED
:32A:140310AUD2120,
:33B:AUD2120,
:50K:/111222333
Mr Bank of Dad
Dads house
England
:52D:/DBEL02010987654321
address 1
address 2
:53B:/HSBCGB2LXXX
:57A://AU124040
AREFERENCE
:59:/44556677
A line which HSBCGB2LXXX contains a BIC
:70:Another line of data
:71A:Even more
好的,所以我需要将标签 53 或 59 作为变量传递并仅返回 BIC HSBCGB2LXXX!