求助:Abbyy FlexiCapture 12正则匹配带引号特定字符串失败问题
解决Abbyy FlexiCapture 12正则匹配问题
问题根源
你写的正则错误地用单引号包裹了分隔符(如«、»、""),在Abbyy FlexiCapture的正则语法中,单引号是普通匹配字符,不是界定元字符的标记。这导致你的正则实际在匹配'«'(单引号+左俄文引号+单引号)这类组合,而非单独的«,既不符合需求,还引发语法错误。同时你的原正则字符类未包含连字符,无法匹配目标字符串里的Тропик-Юг这类带连字符的内容。
修正后的正则方案
根据你匹配带引号俄文/英文名称的需求,提供以下两种正则:
1. 仅匹配单引号包裹的内容(如'Тропик-Юг')
'[A-Za-zа-яА-Я_\-]+'
2. 同时支持多种引号(单引号、俄文左右引号、双引号)的匹配
(['«"])[A-Za-zа-яА-Я_\-]+\1
- 说明:
(['«"])捕获开头的引号作为分组,\1引用该分组确保前后引号一致;\-用来匹配连字符,避免和字符类中的范围符混淆。如果需要匹配连续双引号包裹的内容(如""Тропик-Юг""),可以调整为:
(['«]|""([A-Za-zа-яА-Я_\-]+)""|'([A-Za-zа-яА-Я_\-]+)'|«([A-Za-zа-яА-Я_\-]+)»)
额外注意事项
- Abbyy FlexiCapture的正则无需用单引号包裹任何匹配字符,直接写目标字符即可
- 连字符在字符类中若放在开头/结尾可省略转义,但放在中间时必须用
\-转义,防止被解析为范围界定符
内容的提问来源于stack exchange,提问作者გია დვალიშვილი
相关产品推荐
相关产品推荐

