Python中的模式搜索



我试图在另一个字符串'test1 Test2 Test^ Test '中搜索字符串'Test^ Test '。我发现

re.search(r'bTest^B', 'test1 Test2 Test^ test')

可以,但是

re.search(r'bTest^b', 'test1 Test2 Test^ test')

不起作用。我有点困惑,因为我认为我应该使用b作为"Test^"的词边界(两边都有一个空白的空间)。这是因为Python将字符串的结尾视为'^',所以它是非单词边界吗?

谢谢。

b表示从" word character ";到"非单词字符";反之亦然。单词字符是字母数字字符加上下划线_^不是单词字符,(空格)也不是,所以从一个到另一个的过渡不是单词边界;正如观察到的,它匹配B,而不是b。如果您想要一个特定于空间的检查,您需要显式地使用前置(?=)或后置(?<=)断言(可能是否定的,取决于用例)s/S

我认为插入符号被认为是一个词边界,即分隔符。大写"B"被忽略,因此不寻找单词边界。插入符号是非单词字符。

因此,它不应该是只查找单词的regex模式的一部分。

https://www.regular-expressions.info/wordboundaries.html

最新更新