最近在netbeans的替换功能中使用正则表达式中的反向引用,总是不成功,网上找资料也不容易,找了很久,终于在oracle的blog找到了答案。
原来netbeans的替换支持反向引用,只是他是使用$0、$1进行反向引用的,如果习惯了使用\1、\2的,要改改了。
原文如下:
We've recently added regular expression support into the Find dialog in NetBeans (the Ctrl-F one). Works like charm for both find and replace. But not for all users. Several days after commit we've got user feedback: "But you don't support back-references". "Sure we do". "They don't work for me".
So the problem is that there are two types of back-references. One type which is denoted as $1 and one as \\1. NetBeans uses the $1 one which is used normally in Java. However some other parts of the world are using \\1.
So how do we tell users which one they have to use? Nobody really reads documentation so perhaps we need to tell users in the dialog. If they try to use \\1, we should politely ask them if they didn't want to use $1. Sigh, why can't there be just one standard for everything? :-)
For those who do not know what back-references are, here is my explanation:
Back-references are a very useful when replacing some text. You have the following text: "Hello, world". Now, you can do following:
If you replace the text like this in NetBeans, the result is: "Farewell, world". One replace is not much useful, but imagine if you have a long file where you need to do many replaces and a the file's more complicated. You can use $2, $3, etc. for next elements in parentesis if you want to replace more of them at once. $0 is used for the whole searched string.
This feature can certainly save you a lot of time you would spend by manual editing. And you can impress other people with it as well :-)
分享到:
相关推荐
3. **分组与回溯**:正则表达式中的括号可以创建分组,`Matcher`提供了访问这些分组的方法,如`group(int group)`。回溯机制允许正则引擎在匹配失败时撤销先前的匹配,以尝试其他可能性。 4. **迭代匹配**:对于...
在"简单文本编辑器"中,开发者可能使用了这些组件来实现基本的编辑功能,如新建、打开、保存、复制、粘贴等。 4. **事件监听**:Swing组件支持事件监听,当用户与界面交互时(例如点击按钮),可以触发特定的代码...
6. 正则表达式和字符串处理,用于查找和替换功能。 这个“记事本”项目是一个很好的学习平台,可以帮助初学者提升Java GUI编程能力,理解如何将抽象的代码与实际应用结合,同时也可以为他们的编程实践提供一个起点...
"java中使用正则表达式.txt"探讨了Java如何支持和使用正则表达式进行文本处理。正则表达式在数据验证、搜索和替换等场景中非常有用,了解它们可以帮助你编写更强大的字符串处理代码。 "JAVA编程规范.txt"可能包含了...
以下是Java程序员在日常生活中最常用的10种工具。...Edit Plus最优秀的地方是它非常快速、流畅,并支持所有正则表达式的查找和替换任务。Notepad++可以打开任何类型的Java文件,甚至包含了未在IDE配置的文件,
6. **正则表达式搜索替换**:EditPlus的查找和替换功能支持正则表达式,可以快速定位和修改大量代码中的特定模式。 7. **自定义快捷键**:用户可以根据个人习惯设置快捷键,使得常用操作更加便捷。 8. **宏功能**...
查找并替换正则表达式** - **快捷键**: `Ctrl + Shift + F` - **功能**: 使用正则表达式进行查找和替换,适用于复杂的匹配模式。 通过以上详细的介绍,我们可以看到 NetBeans 提供了丰富的快捷键功能,覆盖了...
我经常使用一些功能,例如(正则表达式)搜索(和替换)项目中的内容(而不仅仅是单个文件),多个窗口(通常在多个屏幕上),实时版本控制信息。 考虑到像素密度屏幕的巨大变化,可以独立于编辑器来调整校样窗口的...
这需要解析文本中的语法,并使用不同颜色和样式显示不同类型的代码元素,可能涉及正则表达式和自定义解析规则。 通过这个Java课程设计项目,学习者不仅可以巩固Java编程基础,还能深入了解GUI编程、文件I/O操作以及...
5. **文本处理**:JTextArea可以显示和编辑文本,但如果你需要进行更复杂的文本操作,比如查找替换、格式转换等,可能需要使用String类的方法或正则表达式。 6. **异常处理**:在处理文件I/O时,可能会遇到文件不...
7. **查找与替换**:强大的查找和替换功能,支持正则表达式,使得在大量代码中搜索和替换变得轻松。 8. **Goto Anything**:只需输入少量字符,就能快速跳转到文件的特定位置或定义,提高了导航效率。 9. **项目...
这使得开发者能够在开发过程中使用熟悉的Java语法和结构。 - **统一的编程模型**: GWT允许开发者使用Java编写客户端和服务器端代码,从而实现了语言层面的统一,便于代码复用和维护。 - **跨平台和兼容性**: 生成的...
- **编辑功能**:利用Java的剪贴板API实现剪切、复制和粘贴,结合正则表达式实现查找和替换。 - **格式功能**:使用Swing组件如JButton、JMenu等,结合ActionListener事件监听,实现字体、字号和颜色的改变。 - *...
不仅可以进行文本的查找与替换,还能进行正则表达式的匹配,这对于批量修改代码或查找特定模式非常有用。 6. **宏功能**: 用户可以录制和播放宏,实现一系列的重复操作,这对于执行固定步骤的任务来说非常高效,...
- Java中的`Pattern`和`Matcher`类用于处理正则表达式,进行字符串匹配和查找替换等操作。 12. JDBC数据库应用: - **数据库知识**:了解关系型数据库的基本概念,如表、字段、主键、外键等。 - **连接数据库**...
- **正则表达式**:介绍Groovy中如何使用正则表达式进行字符串匹配和替换操作。 - **属性符号**:通过属性符号(如`->`、`::`)简化对类成员的访问。 - **Groovy比Java缺少的部分**:虽然Groovy具有许多优势,但也有...
但如果你需要使用其他如正则表达式相关的`java.util.regex`库,那么需要手动导入。 在`StringManipulator`项目中,你可能会遇到的任务可能包括但不限于: 1. **创建和初始化字符串**: 你可以通过双引号创建字符串...
3.1.3 在NetBeans中使用JavaScript 3.1.4 其他的JavaScriptIDE 3.2.1 avaScdpt语法基础 3.2.1 实例:编写第一个JavaScript程序:Greet 3.2.2 变量 3.2.3 原始类型 3.2.4 类型转换 3.2.5 函数与函数...
#### 正则表达式 - **定义**:用于匹配字符串中特定模式的工具。 - **用途**:验证用户输入、搜索和替换文本等。 - **语法**:如`/pattern/flags`形式定义。 #### CSS基础知识 - **选择器**:用于选择HTML元素,如...
3.1.3 在NetBeans中使用JavaScript 3.1.4 其他的JavaScriptIDE 3.2.1 avaScdpt语法基础 3.2.1 实例:编写第一个JavaScript程序:Greet 3.2.2 变量 3.2.3 原始类型 3.2.4 类型转换 3.2.5 函数...