|
5鱼币
疑惑一:为什么'\bFrom'和'From\b'在下面这种用法中匹配不到位置?
- print(re.search('\bFrom', 'From Here to Eternity'))
- None
- print(re.search('From\b', 'From Here to Eternity'))
- None
- print(re.search('From', 'From Here to Eternity'))
- <re.Match object; span=(0, 4), match='From'>
复制代码
我在别的地方测试时,https://tool.oschina.net/regex/?#
貌似又是可以的是在不同地方用法不同吗?
疑惑二:^$和\b在使用上有什么区别
你的疑惑是关于正则表达式中的\b(单词边界)和^、$(开头和结尾锚点)的用法。让我逐一解释这两个问题:
疑惑一:已解决
疑惑二:^$和\b在使用上有什么区别?
^和$是正则表达式中的锚点符号,用于匹配字符串的开头和结尾。
^(脱字符号)匹配字符串的开头。例如,正则表达式^Hello表示匹配以'Hello'开头的字符串。
$(美元符号)匹配字符串的结尾。例如,正则表达式world$表示匹配以'world'结尾的字符串。
而\b是匹配单词边界的条件,它用于限制一个单词的起始或结束位置,而不是限制整个字符串的位置。
综合起来,^和$用于匹配整个字符串的开头和结尾,而\b用于匹配单词的边界。它们之间的区别在于匹配的范围和条件不同。
举例:
- import re
- # 使用^匹配字符串开头
- print(re.search(r'^Hello', 'Hello World')) # Output: <re.Match object; span=(0, 5), match='Hello'>
- print(re.search(r'^Hello', 'Hi, Hello World')) # Output: None
- # 使用$匹配字符串结尾
- print(re.search(r'World$', 'Hello World')) # Output: <re.Match object; span=(6, 11), match='World'>
- print(re.search(r'World$', 'Hello World, Universe')) # Output: None
- # 使用\b匹配单词边界
- print(re.search(r'\bHello\b', 'Hello World')) # Output: <re.Match object; span=(0, 5), match='Hello'>
- print(re.search(r'\bHello\b', 'Hi, Hello World')) # Output: None
复制代码
希望这些解释能够帮助你理解正则表达式中的^$和\b的区别和用法。如果你有更多问题,请随时问我!
|
最佳答案
查看完整内容
你的疑惑是关于正则表达式中的\b(单词边界)和^、$(开头和结尾锚点)的用法。让我逐一解释这两个问题:
疑惑一:已解决
疑惑二:^$和\b在使用上有什么区别?
^和$是正则表达式中的锚点符号,用于匹配字符串的开头和结尾。
^(脱字符号)匹配字符串的开头。例如,正则表达式^Hello表示匹配以'Hello'开头的字符串。
$(美元符号)匹配字符串的结尾。例如,正则表达式world$表示匹配以'world'结尾的字符串。
而\b ...
|