如何准确匹配列表中的单词

时间:2017-08-02 12:20:10

标签: regex

尝试使用正则表达式来捕捉一些词语时,我遇到了问题。

Regexr链接:http://regexr.com/3gfr4

My Regex

我使用spark2-shell --conf "spark.default.parallelism=40" --executor.memory 8g --driver-memory 32g --conf "spark.ui.port=4404" --conf spark.driver.maxResultSize=2048m --conf spark.executor.heartbeatInterval=200s 来捕捉菜单,消息,关闭,设置。它工作正常。但就像上面的图片一样,它会在\b(menu|mes|close|set)\b中捕获menu。从.@menu开始,我不需要抓住这个词。

我尝试将正则表达式更改为@。但工作不正确。

任何人都知道如何解决这个问题,谢谢!

3 个答案:

答案 0 :(得分:0)

1)用周围的空格改变你的字符串:

$str = " $str ";

2)将正则表达式更改为:

\s(menu|mes|close|set)\s

答案 1 :(得分:0)

如果您只希望单词用空格包围,或者在字符串的开头或结尾处包含:

        <Style x:Key="Clicky" TargetType="Button">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Button}">
                    <StackPanel Orientation="Horizontal">
                        <Grid Height="74" Width="284" Background="{TemplateBinding Background}"/>
                        <TextBlock Text="{TemplateBinding Content}"  TextAlignment="Center" VerticalAlignment="Center"/>
                    </StackPanel>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="Cursor" Value="Hand" />
                <Setter Property="Button.Opacity" Value="10" />
            </Trigger>
        </Style.Triggers>
    </Style>

答案 2 :(得分:0)

如果您只希望这些单词位于该行的开头,那么您将其更改为正确。你缺少的是m(多线)标志

/^\b(menu|mes|close|set)\b/gm

http://regexr.com/3gfr7