regex - 需要正则表达式是非贪婪的
问题描述
问题:如何获得正则表达式通配符以仅在两个最近的元素之间进行选择,而不是继续选择更多相似的元素?<br>
我有一个很长的名字列表,需要用制表符将姓氏与其他名字分开。为了做到这一点,我在每行返回之前插入了一个占位符 (#),并将名称中的所有空格替换为不同的占位符 (@) 以供我的正则表达式参考。这些名字都是第一个,中间名首字母,然后是最后一个,在中间名首字母的每一侧都有一个空格。因此,插入占位符后,列表如下所示(简短示例):<br> Edward@C.@Sellner# <br> James@J.@Megivern# <br> J.@Philip@Newell# <br > <br> 我只需要隔离 @ 和 # 占位符之间的姓氏。当我尝试这样做时,我的正则表达式将转到第一个 @ 占位符,而不是在姓氏之前的第二个 @ 占位符处停止。这是我在搜索中使用的内容: <br> @([\s\S]*?)# <br> 我将替换为: <br> (tab)$1# <br> 之后我将转换所有占位符恢复到原来的状态。<br>
我应该在这里做些什么不同的事情?<br>
谢谢。
解决方案
推荐阅读
- android - 无法使用 NRF 库连接到 BLE 设备
- c# - ASP.NET Core JSON-RPC
- javascript - 简化一次性消息通道机器人
- mysql - 如何将查询从 sql 转换为 codeigniter
- excel - 创建 Range 表达式以在 Union() 方法中使用
- vtk - 为什么 VTK 会为气球小部件示例代码给出错误“无法找到 vtkTextRenderer 对象”?
- python - OpenCV 捕获多个 RTSP 流 - Python
- facebook - 本机脚本 facebook//google sso 服务器端
- php - 从动态图片 url 获取图片扩展
- html - 为什么刷新浏览器时无法显示pdf文件?