Python 如何找到这个词'অশুভ';在我的字符串中使用正则表达式?

Python 如何找到这个词'অশুভ';在我的字符串中使用正则表达式?,python,regex,utf-8,nlp,wordnet,Python,Regex,Utf 8,Nlp,Wordnet,我试图用正则表达式找到这个词。但我发现的问题是,每当我尝试使用单词border“\b”时,它都无法准确地工作。 如果我没有使用任何正则表达式,那么它将在使用它的地方显示不同的输出,如'অশুভৰ' 'অশুভ_লক্ষণ'. 我想要消除这些结果,只想要那个词 这是字符串:“মেকুৰীয়ে ৰাস্তা কাটিলে অশুভ বুলি ধৰা হয়, দুৱাৰডলিত বহাটো অশুভনীয়, যি লক্ষণ অশুভৰ পৰিচায়ক" 您只需在关键字中使用 >>>

我试图用正则表达式找到这个词。但我发现的问题是,每当我尝试使用单词border“\b”时,它都无法准确地工作。 如果我没有使用任何正则表达式,那么它将在使用它的地方显示不同的输出,如'অশুভৰ' 'অশুভ_লক্ষণ'. 我想要消除这些结果,只想要那个词


这是字符串:“মেকুৰীয়ে ৰাস্তা কাটিলে অশুভ বুলি ধৰা হয়, দুৱাৰডলিত বহাটো অশুভনীয়, যি লক্ষণ অশুভৰ পৰিচায়ক"

您只需在关键字中使用

>>> s = "মেকুৰীয়ে ৰাস্তা কাটিলে অশুভ বুলি ধৰা হয়, দুৱাৰডলিত বহাটো অশুভনীয়, যি লক্ষণ অশুভৰ পৰিচায়ক"
>>> "অশুভৰ" in s
True
>>> "অভ" in s
False

您可以使用索引来查找单词

>>> s="মেকুৰীয়ে ৰাস্তা কাটিলে অশুভ বুলি ধৰা হয়, দুৱাৰডলিত বহাটো অশুভনীয়, যি লক্ষণ অশুভৰ পৰিচায়ক"
>>> s.index("অশুভ")
23

您可以将
\b
视为定义自己的边界条件集的快捷方式。我在下面演示了如何使用
\b
,然后如何使用显式空间,以及如何使用前向/后向断言执行相同的操作

最后两种方法的区别在于,
[]
将捕获任意一侧的空格,而断言(和
\b
)将不会捕获空格。(您可以在下面的示例输出中看到这一点。)

您还可以在下面看到,
\b
在您给出的两个测试用例上运行良好。但是我假设您正在更复杂的字符串或更复杂的正则表达式中使用它

import re

s1="মেকুৰীয়ে ৰাস্তা কাটিলে অশুভ বুলি ধৰা হয়, দুৱাৰডলিত বহাটো অশুভনীয়, যি লক্ষণ অশুভৰ পৰিচায়ক"
s2 = "অশুভৰ অশুভ_লক্ষণ"

pat = r'অশুভ'
m = re.search(pat,s1)
print(m)
m = re.search(pat,s2)
print(m)

pat = r'\bঅশুভ\b'
m = re.search(pat,s1)
print(m)
m = re.search(pat,s2)
print(m)

pat = r'[ ]অশুভ[ ]'
m = re.search(pat,s1)
print(m)
m = re.search(pat,s2)
print(m)

pat = r'(?<= )অশুভ(?= )'
m = re.search(pat,s1)
print(m)
m = re.search(pat,s2)
print(m)
重新导入
s1=”মেকুৰীয়ে ৰাস্তা কাটিলে অশুভ বুলি ধৰা হয়, দুৱাৰডলিত বহাটো অশুভনীয়, যি লক্ষণ অশুভৰ পৰিচায়ক"
s2=”অশুভৰ অশুভ_লক্ষণ"
帕特=r'অশুভ'
m=重新搜索(pat,s1)
打印(m)
m=重新搜索(pat,s2)
打印(m)
pat=r'\bঅশুভ\b'
m=重新搜索(pat,s1)
打印(m)
m=重新搜索(pat,s2)
打印(m)
pat=r'[]অশুভ[ ]'
m=重新搜索(pat,s1)
打印(m)
m=重新搜索(pat,s2)
打印(m)

pat=r'(?您能显示完整的正则表达式(和调用代码)吗您单独使用的?
r'\b'
不会匹配太多。问题是,
\b
只匹配单词字符和非单词字符,在单词字符之前的字符串开头和单词字符之后的字符串结尾,但变音符号不是单词字符。这就是问题所在。我认为询问者正在寻找一种返回的解决方案单词出现在文本中的位置。Where,而不是if。他们不想要অশুভ 以``匹配অশুভৰ' 'অশুভ_লক্ষণ'` 不过,他们不想要অশুভ 以``匹配অশুভৰ' 'অশুভ_লক্ষণ'` 不过。
<_sre.SRE_Match object; span=(23, 27), match='অশুভ'>
<_sre.SRE_Match object; span=(0, 4), match='অশুভ'>
<_sre.SRE_Match object; span=(23, 27), match='অশুভ'>
None
<_sre.SRE_Match object; span=(22, 28), match=' অশুভ '>
None
<_sre.SRE_Match object; span=(23, 27), match='অশুভ'>
None