- 此问题在此处已有答案**:
Regex: Specify "space or start of string" and "space or end of string"(4个答案)
Regex whitespace word boundary(3个答案)
13小时前关门了。
这三个都不匹配
m = re.search(r'[^\s]+ss', "aa ss")
m = re.search(r'[^\s]+ss', "ss")
m = re.search(r'[^\s]+ss', " ss")
但这个和
m = re.search(r'[\s^]+ss', " ss")
在字符串的开头或一个或多个空格之后匹配单词"ss"的通常方法是什么?
- --修改---
r'\bss'
是一个很好的解决方案,至少在我的情况下是这样。但是我想知道为什么方括号的不起作用,下面的@TedLyngmo回答了这个问题。
1条答案
按热度按时间myzjeezk1#
如果我没理解错的话,可以使用
|
匹配行首的 * 或 * 空格:(?:
-非捕获组的开始^|\s
-匹配行首或空白)
-非捕获基团末端ss
-匹配文字ss
Demo
在您的尝试中:
[^\s]
将精确匹配 * 一个 * 非空白字符。[^...]
使字符组取反,以便不允许该组中的任何字符。[\s^]
将精确匹配 * 一个 * 字符,该字符可以是空格或文字^
(不是字符串的开头)。