我正在寻找一个正则表达式来验证评级(1-10)+可选文本。 等级是小数,有1个点,可以使用点或逗号分隔符。 后面跟一个可选的空格+字符串。
有效
无效
我已经得到了这个以获取小数值,但我不确定如何获取它背后的可选文字。
LIKE #{value} || '%'
答案 0 :(得分:3)
根据您的示例判断,初始编号后的空格不是可选的。因此,您可以使用的模式是
SolidColorBrush
或 - 因为与<Style TargetType="{x:Type Button}" x:Key="WindowButtonStyle">
<Setter Property="Width" Value="46" />
<Setter Property="Height" Value="32" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalAlignment}" VerticalAlignment="{TemplateBinding VerticalAlignment}" />
</Border>
<ControlTemplate.Resources>
<Storyboard x:Key="MouseOverAnimation">
<DoubleAnimation Storyboard.TargetName="border" Storyboard.TargetProperty="Background.(SolidColorBrush.Opacity)" To="1.0" Duration="0:0:0.15" />
</Storyboard>
<Storyboard x:Key="MouseOutAnimation">
<DoubleAnimation Storyboard.TargetName="border" Storyboard.TargetProperty="Background.(SolidColorBrush.Opacity)" To="0.0" Duration="0:0:0.15" />
</Storyboard>
</ControlTemplate.Resources>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Trigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource MouseOverAnimation}" />
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard Storyboard="{StaticResource MouseOutAnimation}" />
</Trigger.ExitActions>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
的部分匹配足以验证字符串 - 将^(?:10|[1-9](?:[.,][0-9])?)(?:\s.*)?$
替换为负前瞻Regex.IsMatch
,在数字后面需要空格或字符串结尾:
(?:\s.*)?$
请参阅regex demo
<强>详情:
(?!\S)
- 字符串的开头^(?:10|[1-9](?:[.,][0-9])?)(?!\S)
^^^^^^^
- ^
或(?:10|[1-9](?:[.,][0-9])?)
到10
之间的数字,后跟可选的1
或9
序列单个数字然后...... ,
- 任意空格的可选序列,后跟任何字符到字符串的结尾 - 或 - .
- 如果当前位置右侧没有非空格字符,则会导致匹配失败的否定前瞻。(?:\s.*)?$
输出:
(?!\S)