regex - 字符串中带有可选单词的正则表达式
问题描述
我尝试对以下行进行正则表达式(每个单词用一个空格分隔):
Firstpartstring thisisoptional secondpartstring
我希望每个字符串作为组匹配:
Group 1. Firstpartstring
Group 2. thisisoptional
Group 3. secondpartstring
这是我到目前为止所尝试的:
(.*?)\s(thisisoptional)?\s(.*)
唯一的问题是,如果字符串中不存在“thisisoptional”,我不会得到任何结果。
我预计:
Group 1. Firstpartstring
Group 2.
Group 3. secondpartstring
请查看此演示:https ://regex101.com/r/YBlYXm/1
谁能让我朝着正确的方向前进?
谢谢
解决方案
可选词之前的空格也应该是可选的;否则将需要在第一个单词和最后一个单词之间有两个空格来匹配:
(.*?)(?:\s(thisisoptional))?\s(.*)
推荐阅读
- python - 根据列值复制行
- python - 使用 matplotlib 将 2D 直方图投影到一个轴
- php - 使用 jquery ajax 和 php 逐个加载部分
- php - 如何使用 PHP 在汇总页面中显示多个表单
- reactjs - MobX 没有正确更新组件
- css - Sass 不会将 mixins 和变量编译成 css
- angular - AngularFireDatabase、Jest 和单元测试 firebase 实时数据库
- node.js - 谷歌语音到文本 api(从 GCS 读取)
- neo4j - Neo4j CompositeIndex 使用关系
- python - Seaborn violinplot 透明度