图片缩略图

在选择中查找和替换

版本1.1.0.0 (1.5 KB)由 萨姆·约翰逊
在当前选定的编辑器文本中查找并替换。
4.9
9评级

8下载

更新9月21日

查看版本历史

查看许可协议

使用MATLAB编辑器API和STRREP在当前选定的编辑器文本中查找和替换所有出现的子字符串。

引用作为

山姆·约翰逊(2021年)。在选择中查找和替换(//www.tatmou.com/matlabcentral/fileexchange/38264-find-and-replace-in-selection), MATLAB中央文件交换。检索

意见及评分(14

斯楠伊斯兰教

郝阴

巴勃罗·洛佩兹

太棒了!

埃里克

您可以很容易地将其修改为适合快速访问工具栏上的快捷方式。这似乎比函数更可取。

另外,你必须非常小心。如果字符串中有“there”,并告诉函数将“here”替换为“here1”,“there”就会变成“there1”。这可能是个问题。

安东尼

要解决我在上一篇评论中提出的问题,你可以简单地:

-添加一行:numberofreplacement = numel(strfind(newText(startPos:endPos-1), oldSubstr));

之前用strrep行。

-将倒数第二行更改为:
[selectionPosition(3) selectionPosition(4)] = matlab.desk .editor. indextopositioninline (activeEditor, endPos+ numberofreplacement *(numel(newSubstr)-numel(oldSubstr)));

安东尼

安东尼

太好了!非常感谢!

我只想说一点:
如果将表达式替换为较长的表达式(例如。'*' by '.*')所选文本的一部分被取消选择(所选字符的数量保持不变)。

如果必须执行多个替换,则可能会导致问题。

可以通过以下方法解决:
-使替换表达式长度与被替换表达式长度之差(D)
-扩展替换后的选择(替换数量)*D

无论如何,非常感谢你的提交,这真的很棒:-)

亚历山德罗Masullo

我爱你!

爱丽娜

山姆,
现在起作用了,非常感谢。

萨姆·约翰逊

嗨爱丽娜,

您需要向函数传递字符串。

例如:replaceInSelection('median', 'skew')

爱丽娜

我试过了,但我一直得到这个错误:
EDU>> replaceInSelection(中位数,倾斜)
使用中值的错误(第27行)
输入参数不够。

我在编辑器中选择文本,然后在命令窗口中键入replaceInSelection(中位数,倾斜)。
谢谢

萨姆·约翰逊

遗憾的是,没有相关的GUI -您可以在编辑器中选择一个文本区域,然后从命令窗口调用该函数。

约瑟夫•卡伦

你如何在实践中使用它?从命令窗口调用函数?或者是否存在关联的GUI?
如果是,你怎么调用它?

谢谢

MATLAB版本兼容性
使用R2012a创建
与任何版本兼容
平台的兼容性
窗户 macOS Linux

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!