Python 使用نيك;单独使用,而不是与الهندسةالميكانيكية;
我试过\bن1610;ك\b,但似乎不起作用 例如: نيك应匹配 不应匹配Python 使用نيك;单独使用,而不是与الهندسةالميكانيكية;,python,regex,Python,Regex,我试过\bن1610;ك\b,但似乎不起作用 例如: نيك应匹配 不应匹配 如果我的理解正确,就使用str.count()模块。使用英语单词对RegExp模式进行推理对我来说是一种更直接的方法 我使用了一种模式,它将消极的先行断言与积极的先行断言相结合,以排除特定的匹配模式 您可以在下面给定的模式中将hello替换为ن1610;ك,以测试单词 import re pattern = re.compile(r""" (?=(?![\w\s]+)) # don't match next grou
如果我的理解正确,就使用str.count()模块。使用英语单词对RegExp模式进行推理对我来说是一种更直接的方法 我使用了一种模式,它将消极的先行断言与积极的先行断言相结合,以排除特定的匹配模式 您可以在下面给定的模式中将
hello
替换为ن1610;ك
,以测试单词
import re
pattern = re.compile(r"""
(?=(?![\w\s]+)) # don't match next group when word/space is before it
(hello[\s]?)+ # match hello with optional space repeatedly
| # or
(hello[\s]?)+ # match hello with optional space repeatedly
(?=(?![\w\s]+)) # don't match previous group when word/space is after it
""", re.VERBOSE)
测试用例
>>> case1 = 'hello'
>>> case2 = 'hello world'
>>> case3 = 'world hello'
>>> case4 = 'ehlo world hello'
>>> case5 = 'hello hello hello'
>>> re.match(pattern, case1)
<re.Match object; span=(0, 5), match='hello'>
>>> re.match(pattern, case2)
>>> re.match(pattern, case3)
>>> re.match(pattern, case4)
>>> re.match(pattern, case5)
<re.Match object; span=(0, 17), match='hello hello hello'>
案例1='你好'
>>>案例2=‘你好,世界’
>>>案例3=‘世界你好’
>>>案例4=‘ehlo世界你好’
>>>案例5=‘你好’
>>>关于匹配(模式,案例1)
>>>关于匹配(模式,案例2)
>>>关于匹配(模式,案例3)
>>>关于匹配(模式,案例4)
>>>关于匹配(模式,案例5)
你在问什么?单独使用这个词是个不好的词。我想知道如果单独使用“نيك”这个词,正则表达式将如何产生匹配结果。什么是正则表达式匹配,而不是前后组合的其他单词。查看单词边界(
\b
)和UTF-8功能(re.U
标志)谢谢你,Oluwafemi,我认为这为我指明了正确的方向。