python - 在Python中使用正则表达式获取字符之前/之后的单词
问题描述
这应该很容易使用捕获组,但我没有得到正确的单词。我一直在使用以下内容:
#Before
print(re.sub(r'\b([A-Za-z0-9]+)\b(?=\.?\s*(\&|\-|and))',r'\1','A. & B.',flags=re.IGNORECASE))
A. & B.
#After
print(re.sub(r'(\&|\-|and)\s*\b([A-Za-z0-9]+)\b',r'\2','A. & B.',flags=re.IGNORECASE))
A. B.
字符串可以是以下之一:
A. - B.
A.-B.
A. & B.
A.&B.
A. AND B.
这个想法是在我之前/之后得到这个词,ampersand| hyphen | and
我分成两个正则表达式来得到这两个词。在这个例子中, before 会得到 justA
和 after B
。
为什么捕获组没有打印A
,并且B
在前面的示例中?
提前致谢 :)
解决方案
改为使用re.search()
并在选项之一之前和之后对所需的单词进行分组&,-,and
:
text = re.search('(\w+)\.+\s*[\&*\-*AND*and*]*\s*(\w+)\.+', 'A. & B.')
print (text.groups())
推荐阅读
- java - (GAE-Standard+Java11) 运行多个实例的会话
- python - 在 Pandas Dataframe 中计算时间间隔内的行数
- grails - Grails 视图为 DTO 对象列表呈现额外的逗号
- c# - 在 Azure 搜索中将模糊搜索与同义词扩展相结合
- regex - 我需要帮助将公式应用于 Google 工作表中的每一行
- python - 有 python 的 is_Prime() 函数
- .net - ASP.NET Core 禁用请求缓冲(不是响应缓冲)
- python - 销售员贪心算法在我的数据中产生奇怪的数据
- python - 在 Django 中查找给定时间段的最新条目的更快方法
- wordpress - 比较 Wordpress Wp_Query 中的日期值