如何使\b接受以';开头的单词+';在python中使用正则表达式? 为什么这个正则表达式没有找到 + 359 < /代码>,我如何使 \b>代码>考虑从 +>代码>开始的单词? < p>不能更改 \b/COD>的行为。你必须使用不同的锚;类似于\B,它匹配单词开头或结尾以外的任何位置;它与\b相反: re.search(r"\b\+359\b","Is your phone number +359 887438?")

如何使\b接受以';开头的单词+';在python中使用正则表达式? 为什么这个正则表达式没有找到 + 359 < /代码>,我如何使 \b>代码>考虑从 +>代码>开始的单词? < p>不能更改 \b/COD>的行为。你必须使用不同的锚;类似于\B,它匹配单词开头或结尾以外的任何位置;它与\b相反: re.search(r"\b\+359\b","Is your phone number +359 887438?"),python,regex,Python,Regex,如果+前面没有单词字符,则此项再次匹配,而该字符本身是非单词字符。如果\b只能在单词和非单词字符之间匹配(因此word\bNONWORD或nonword\bWORD),则\b需要两个非单词或两个单词字符来匹配(因此word\bWORD或nonword\bNONWORD)。由于+是非单词字符,因此+前面的任何字符也必须是非单词字符 或者,您也可以使用背面的负面外观: \B\+359\b (? (?否定查找后断言仅匹配位置前面没有单词字符的位置 演示: >>重新导入 >>>重新搜索(r“\b\+3

如果
+
前面没有单词字符,则此项再次匹配,而该字符本身是非单词字符。如果
\b
只能在单词和非单词字符之间匹配(因此
word\bNONWORD
nonword\bWORD
),则
\b
需要两个非单词或两个单词字符来匹配(因此
word\bWORD
nonword\bNONWORD
)。由于
+
是非单词字符,因此
+
前面的任何字符也必须是非单词字符

或者,您也可以使用背面的负面外观:

\B\+359\b
(?
(?否定查找后断言仅匹配位置前面没有单词字符的位置

演示:

>>重新导入
>>>重新搜索(r“\b\+359\b”,“您的电话号码是+359 887438吗?”)
>>>重新搜索(r“\B\+359\B”,“您的电话号码是+359 887438吗?”)

>>>re.search(r)(?你不能改变
\b
的行为。你必须使用不同的锚;比如
\b
,它匹配任何不在单词开头或结尾的地方;它与
\b
相反:

re.search(r"\b\+359\b","Is your phone number +359 887438?")
如果在
+
前面没有单词字符,而
\b
本身是非单词字符,则此项再次匹配。其中
\b
只能在单词和非单词字符之间匹配(因此
单词\b非单词
非单词\b单词
),则
\b
需要两个非单词或两个单词字符来匹配(因此
WORD\b单词
NONWORD\b单词
)。由于
+
是非单词字符,因此
+
前面的任何字符也必须是非单词字符

或者,您也可以使用背面的负面外观:

\B\+359\b
(?
(?否定查找后断言仅匹配位置前面没有单词字符的位置

演示:

>>重新导入
>>>重新搜索(r“\b\+359\b”,“您的电话号码是+359 887438吗?”)
>>>重新搜索(r“\B\+359\B”,“您的电话号码是+359 887438吗?”)

>>>再搜索(r)(?是“\B”在Python的正则表达式中受支持?第一部分做什么?哈——否定否定会伤到我的头。OP建议按照
NOTWORD\bWORD
,使用
\b\+x
,但是中间有一个
+
。它不起作用,因为
\b
需要一个单词边界。那么你能使用
\b
吗?(编辑)好的,那是肯定的:-)@Jongware:你可以,因为
\B
只能匹配
非单词\B非单词
WORD\B单词
。而
+
使一方成为
非单词
,所以另一方也必须是
非单词
。是“\B”在Python的正则表达式中受支持?第一部分做什么?哈——否定否定会伤到我的头。OP建议按照
NOTWORD\bWORD
,使用
\b\+x
,但是中间有一个
+
。它不起作用,因为
\b
需要一个单词边界。那么你能使用
\b
吗?(编辑)好的,那是肯定的:-)@Jongware:你可以,因为
\B
只能匹配
非单词\B非单词
WORD\B单词
+
使一方成为
非单词
,所以另一方也必须是
非单词