我在Python上匹配正则表达式的开头和结尾时遇到了问题。
基本上我对何时使用单词边界^ $
和开始/结束锚点^[A-Z]{2}\d{2}
我的正念
^[A-Z]{2}\d{2}$ # this doesn't work
匹配4个字母的字符(两个大写字母,两个数字),这是我之后的
匹配AJ99,RD22,CP44等
但是,我也注意到AJAJAJAJAJAJAJAJAJSJHS99也可以匹配。我已经尝试过使用^和$来匹配整个字符串。这不起作用
^[A-Z]{2}\d{2} # this is fine
[A-Z]{2}\d{2}$ # this is fine
但
s = "NZ43" # 4 characters, match perfect! However....
s = "AM27272727" # matches the first example
s = "HAHSHSHSHDS57" # matches the second example
我匹配的字符串长度为4个字符,但在前两个示例中,正则表达式可以分别选择较长字符串的开头和结尾。
<Grid x:Name="MainGrid" Width="1000" Height="600">
<Grid x:Name="MainGrid" HorizontalAlignment="Left" Height="600" VerticalAlignment="Top" Width="1000">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" MinWidth="500"/>
<ColumnDefinition Width="5" />
<ColumnDefinition Width="*" MinWidth="200"/>
</Grid.ColumnDefinitions>
<ScrollViewer Grid.Column="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" HorizontalScrollBarVisibility="Visible">
<TextBox Grid.Column="0" x:Name="textBox" Text="Doei, Hoi" MinWidth="200"/>
</ScrollViewer>
<GridSplitter Grid.Column="1" x:Name="gridSplitter" HorizontalAlignment="Center" Height="auto" Margin="0,0,0,0" VerticalAlignment="Stretch" Width="5" ResizeDirection="Columns" Background="#FF464444"/>
<ScrollViewer Grid.Column="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" HorizontalScrollBarVisibility="Visible">
<TextBox Grid.Column="2" x:Name="textbox1" Text="Hoi, Doei" MinWidth="200"/>
</ScrollViewer>
</Grid>
</Grid>
答案 0 :(得分:3)
位置定位^
和$
限制匹配字符的位置:
分析完整的正则表达式:
^[A-Z]{2}\d{2}$
^
仅在文字开头匹配[A-Z]{2}
正好是2个大写的Ascii字母字符\d{2}
正好是2位数(相当于[0-9]{2}
)$
仅在文字末尾匹配如果您删除了2个位置锚点中的一个或两个(^
或$
),则可以匹配从上面开始或结束开始的子字符串。
如果你想在不使用字符串的开头/结尾的情况下完全匹配单词,请使用\b
锚点,如下所示:
``\b[A-Z]{2}\d{2}\b``
\b
匹配文字的开头/结尾和正则表达式字之间(在正则表达式中,单词char \w
旨在作为[a-zA-Z0-9_]
之一)并且单词组中的一个字符不(可用作\W
)。 上面的正则表达式匹配所有下一个字符串中的 WS24
:
WS24
before WS24
WS24 after
before WS24 after
NZ43
不符合:
AM27272727
(如果是AM27 272727
或AM27"272727
HAHSHSHSHDS57
(如果HAHSHSHSH DS75
或......你会得到它)demo online(该网站对您也有用,可以试用正则表达式)。
答案 1 :(得分:0)
您所显示的行为就像它应该是的那样,您的问题表明您可能还没有完全理解正则表达式的工作原理。
作为GsusRecovery的非常好且信息丰富的答案的补充,here是一个网站,它引导您完成正则表达式的概念,并尝试通过基于课程的系统教您基础知识。要明确的是,我不想吹捧这个网站,因为有很多这样的网站,但是我真的可以使用这个,所以它是我建议的那个。