使用 Perl 正则表达式提取匹配项
Extracting matches with Perl regex
我正在尝试从这个 a lot of text...[RL2.OPT.TEST.01]<some more text
中提取以下字符串 RL2.OPT.TEST.01
。基本上 RL2.
之前可以有任何内容,但它总是以 RL2.
开头,并且总是以 ]
、<
或 space 结束。
我尝试使用以下正则表达式:m/RL2\..*[\s<\]]+?$/g
但即使它找到了字符串 -- [RL2.OPT.TEST.01]
的匹配项,它也不适用于 -- [RL2.OPT.TEST.01] some more text
.
我需要一个包含大字符串中所有匹配结果的数组。我想我还应该提到这个字符串有很多换行符,但从来没有在我试图提取的字符串中间。
关于我的正则表达式有什么问题的任何线索?
使用否定字符class并删除行尾锚点$
m/RL2\.[^\s<\]]*/g
[^\s<\]]*
否定字符 class 匹配任何字符但不匹配 space 或 <
或 ]
零次或多次。
我正在尝试从这个 a lot of text...[RL2.OPT.TEST.01]<some more text
中提取以下字符串 RL2.OPT.TEST.01
。基本上 RL2.
之前可以有任何内容,但它总是以 RL2.
开头,并且总是以 ]
、<
或 space 结束。
我尝试使用以下正则表达式:m/RL2\..*[\s<\]]+?$/g
但即使它找到了字符串 -- [RL2.OPT.TEST.01]
的匹配项,它也不适用于 -- [RL2.OPT.TEST.01] some more text
.
我需要一个包含大字符串中所有匹配结果的数组。我想我还应该提到这个字符串有很多换行符,但从来没有在我试图提取的字符串中间。
关于我的正则表达式有什么问题的任何线索?
使用否定字符class并删除行尾锚点$
m/RL2\.[^\s<\]]*/g
[^\s<\]]*
否定字符 class 匹配任何字符但不匹配 space 或 <
或 ]
零次或多次。