我有一个输入字符串,它是一个目录地址:
例: ProgramFiles/Micro/Telephone
我想非常严格地将它与单词列表匹配:
例: Tel|Tele|Telephone
我想要反对Telephone而不是Tel.现在我的正则表达式看起来像这样:
my( $output ) = ( $input =~ m/($list)/o );
Run Code Online (Sandbox Code Playgroud)
上面的正则表达式将匹配Tel.我该怎么办才能修复它?
如果你想要一个完整的单词匹配:
\b(Tel|Tele|Telephone)\b
Run Code Online (Sandbox Code Playgroud)
\b是一个零宽度的单词边界.在这种情况下,字边界表示从单词字符过渡到单词字符.单词字符(\w)是[0-9a-zA-Z_].
如果您只想匹配部分单词匹配中最长的匹配,请将最长的匹配.例如:
\b(Telephone|Tele|Tel)
Run Code Online (Sandbox Code Playgroud)
要么
(Telephone|Tele|Tel)
Run Code Online (Sandbox Code Playgroud)