在我正在python中创建的程序中,我希望所有格式为__word__
的单词都能脱颖而出。我如何使用正则表达式搜索这些单词?
答案 0 :(得分:4)
也许像
\b__(\S+)__\b
>>> import re
>>> re.findall(r"\b__(\S+)__\b","Here __is__ a __test__ sentence")
['is', 'test']
>>> re.findall(r"\b__(\S+)__\b","__Here__ is a test __sentence__")
['Here', 'sentence']
>>> re.findall(r"\b__(\S+)__\b","__Here's__ a test __sentence__")
["Here's", 'sentence']
或者您可以像这样在
这个词周围添加标签>>> print re.sub(r"\b(__)(\S+)(__)\b",r"<b>\2<\\b>","__Here__ is a test __sentence__")
<b>Here<\b> is a test <b>sentence<\b>
如果您需要对合法字词进行更细粒度的控制,最好是明确的
\b__([a-zA-Z0-9_':])__\b ### count "'" and ":" as part of words
>>> re.findall(r"\b__([a-zA-Z0-9_']+)__\b","__Here's__ a test __sentence:__")
["Here's"]
>>> re.findall(r"\b__([a-zA-Z0-9_':]+)__\b","__Here's__ a test __sentence:__")
["Here's", 'sentence:']
答案 1 :(得分:1)
请点击此处:http://docs.python.org/library/re.html
这应该显示语法和示例,您可以使用这些语法和示例构建对带有2个下划线的前后字的检查。
答案 2 :(得分:0)
最简单的正则表达式是
__.+__
如果您想从代码中访问单词本身,则应使用
__(.+)__
答案 3 :(得分:0)
这将为您提供包含所有此类单词的列表
>>> import re
>>> m = re.findall("(__\w+__)", "What __word__ you search __for__")
>>> print m
['__word__', '__for__']
答案 4 :(得分:0)
\b(__\w+__)\b
\b
字边界
\w+
一个或多个单词字符 - [a-zA-Z0-9_]
答案 5 :(得分:0)
简单的字符串函数。没有正则表达式
>>> mystring="blah __word__ blah __word2__"
>>> for item in mystring.split():
... if item.startswith("__") and item.endswith("__"):
... print item
...
__word__
__word2__