![](/img/trans.png)
[英]How to find a “piece” of word in a string with regex and using it in python?
[英]Python Find entire word in string using regex and user input
我正在尝试使用正则表达式查找整个单词,但是我正在搜索的单词是来自用户输入的变量值。 我已经试过了:
regex = r"\b(?=\w)" + re.escape(user_input) + r"\b"
if re.match(regex, string_to_search[i], re.IGNORECASE):
<some code>...
但它匹配每次出现的字符串。 它匹配正确的“ var”->“ var”,但也匹配“ var”->“ var” iable,我只希望它匹配“ var”->“ var”或“ string”->“ string”
输入:“剑”
String_to_search =“曾经有位造剑的剑匠”
所需的输出:将“ sword”匹配到“ sword”,而不是“ swordsmith”
您可以像这样尝试re.finditer:
>>> import re
>>> user_input = "var"
>>> text = "var variable var variable"
>>> regex = r"(?=\b%s\b)" % re.escape(user_input)
>>> [m.start() for m in re.finditer(regex, text)]
[0, 13]
它将迭代找到所有匹配项。
您似乎想使用与整个字符串匹配的模式。 请注意,当您想查找部分匹配项时,需要\\b
字边界。 如果需要完整的字符串匹配,则需要anchors 。 由于re.match
将匹配re.match
锚定在字符串的开头,因此您所需要的就是$
(字符串结尾的位置)在模式的末尾:
regex = '{}$'.format(re.escape(user_input))
然后使用
re.match(regex, search_string, re.IGNORCASE)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.