【发布时间】:2021-03-04 18:52:42
【问题描述】:
首先,正则表达式可能是我编程领域最缺乏天赋的方面,这就是我目前所拥有的:\D{1,5}(PR)\D+$
\D{1,5} 因为普通股票代码总是最多 5 个字母(PR) 因为这是需要搜索的模式的一部分(更多信息在后台信息中)\D+$ 因为我正在尝试匹配字符串末尾的任何单个字母
一点背景知识
首选股票代码没有标准化,因此每个平台、交易所等都有自己的显示方式。话虽如此,大多数人的名字中都会显示一个特殊字符,这使得这些人很容易被发现。字符是[] {'.', '/', '-', ' ', '+'};
比较棘手的都有类似的模式:
{symbol}PR{0}
{symbol}p{0}
{符号}P{0}
其中0 是任意单个字母 A-Z
这里是复杂数据集的示例数据集:
PSAPRZ
PSApA
PSApZ
PSAPA
PSAPZ
我的正则表达式似乎适用于第一个,因为我专门寻找 (PR) 并匹配最后的任何单个字母字符,但我无法终生弄清楚如何检测在同一正则表达式中以p{0} 或P{0} 结尾的模式。我完全放弃了寻找特殊符号的尝试,因为我可以轻松地在目标字符串上为任何这些字符执行 string.Contains。更重要的部分是找出这些更棘手的部分。
如何让我的正则表达式语句同时检测同一正则表达式语句中的 p{0} 和 P{0} 匹配项?
编辑 1 如果您对不同可能性的疯狂感到好奇,包括“易于检测”的版本,请拿一个爆米花,给您:)
PSA.PA
PSA.PR.A
PSA/PA
PSAPRA
PSA-A
PSA PRA
PSA.PRA
PSA.PA
PSA+A
PSA/PRA
PSApA
PSAPA
PSA-PA
【问题讨论】:
标签: regex