我可以使用\p{Punct}
来匹配所有标点符号(包括下划线)。
我想在一个单词中严格排除所有撇号。为此,我使用(?<=[a-zA-Z])'(?=[a-zA-Z])
然而,我不能让它们一起工作以匹配除撇号之外的所有标点符号。
我应该使用什么?
的示例:
my brother's
这不应该匹配。
my brothers'
这应该匹配。
my 'brother'
这些应匹配。
答案 0 :(得分:4)
您可以在此处结合三个条件。
使用<Window.Resources>
<Style TargetType="Button" x:Key="aimDark">
<Setter Property="VerticalAlignment" Value="Top" />
<Setter Property="Margin" Value="5,5,5,0" />
<Setter Property="Height" Value="20" />
<Setter Property="Foreground" Value="#0e0e0e" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border
CornerRadius="4"
BorderBrush="#000000"
BorderThickness="1">
<Border.Background>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#006d23" Offset="0" />
<GradientStop Color="#006d23" Offset="0.05" />
<GradientStop Color="#00c741" Offset="0.45" />
<GradientStop Color="#00c741" Offset="1" />
</LinearGradientBrush>
</Border.Background>
<RenderOptions.EdgeMode>Aliased</RenderOptions.EdgeMode>
<ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
'
之外的所有标点符号
匹配所有撇号后面没有字母。
匹配所有撇号后面没有字母。
正则表达式: [\p{Punct}&&[^']]
<强>解释强>
[\p{Punct}&&[^']]|(?<![a-zA-Z])'|'(?![a-zA-Z])
从标点符号类中排除了撇号。
[\\p{Punct}&&[^']]
匹配撇号后面没有字母。
(?<![a-zA-Z])'
匹配撇号后面没有字母。
<强> DEMO HERE 强>
答案 1 :(得分:0)
您可以手动排除撇号,对您感兴趣的所有标点符号进行分组。然后将该组与您的规则结合起来,以便通过OR找到正确的撇号(不在单词内)。