我是正则表达式的新手,正在以下句子中进行搜索:

OCEU0H - Debt securities issued by multilateral development companya. OCEU0J - Debt securities issued by private company

出应该是:-
['OCEU0H','OCEU0J']

OC总是开头,EU是任何输入的国家/地区代码。

我的尝试是:-
r'\b+(^(OC)\W+)\b+'

还请为我建议最好的正则表达式教程或文档。

最佳答案

您需要使用

\bOC\w+\b


请参见regex demo

要匹配单词字符,您需要使用\w,而不是\W。请注意,如果只想在OC之后匹配ASCII字母,则使用[A-Za-z]而不是\w(任何字母,数字或_)更有意义。

您不应该量化像\b(单词边界)这样的零宽度断言,也不应在^之前使用OC锚,因为^与字符串的开头匹配。

图案细节


\b-单词边界
OC-文字子字符串
\w+-1个或多个单词字符(如果使用[A-Za-z]+,则为任何1+ ASCII字母)
\b-单词边界

08-24 16:42