技术问询:如何提取字符串末尾的全大写企业/个人名称子串
需求说明
现有以下格式的文本(已转译中文):
转账至IBAN账户 NL10FRGS000000 FAKE COMPANY LTD
或
转账至IBAN账户 NL10FRGS000000 FAKE-COMPANY 22 LTD
或
收到转账#1234,IBAN 00000 JOHN SMITH
需要从这些字符串中提取位于末尾的全大写子串,子串分为两类:
- 企业名称:可包含短横线
-,后缀固定为LTD或CO - 个人名称:全大写格式
解决方案
使用正则表达式可以快速实现匹配提取,以下是适配需求的正则表达式:
\b([A-Z0-9-]+(?:\s+[A-Z0-9-]+)*\b(?:LTD|CO)?)$
匹配逻辑
\b:匹配单词边界,避免截取不完整的片段[A-Z0-9-]+:匹配由大写字母、数字、短横线组成的内容片段(?:\s+[A-Z0-9-]+)*:支持匹配多个由空格分隔的上述片段,适配多词名称(?:LTD|CO)?:可选匹配企业后缀LTD或CO,确保后缀处于单词边界$:锚定字符串末尾,保证提取的是最后一段符合规则的内容
提取结果示例
对上述示例文本应用该正则,将得到以下结果:
FAKE COMPANY LTDFAKE-COMPANY 22 LTDJOHN SMITH
内容的提问来源于stack exchange,提问作者Yana
相关产品推荐
相关产品推荐

