java - 如何使用 java regex package.a 选择单词的第一次出现

标签 java regex

我正在使用 java 和 awt 包创建一个记事本。我面临的一个问题是记事本中的查找实用程序。它选择最后一次出现的单词。假设我在文本字段中写入“go”,然后单击“查找下一个”按钮,并且文件中出现了两次“go”一词,那么它将选择第二个,但我希望它选择第一个出现。 这是查找下一个事件的代码。

else if(act=="Find Next")
{   
    String str=t.getText();
    pt=Pattern.compile(t1.getText());
    m=pt.matcher(str.replace("\n", ""));
    while(m.find())
        t.select(m.start(),m.end());
    f.toFront();
}

这是我测试过的文件。

this is sample file just to test the notepad application.
what could possibly go wrong go.

代码选择第二次出现的“go”。可能的解决方案是什么。

最佳答案

为什么在这里使用 while 循环?

while(m.find())
    t.select(m.start(),m.end());

对于每场比赛,它都会选择它。 结果,最后一个将被选中。

要选择第一个,请将 while 更改为 if:

if (m.find())
    t.select(m.start(),m.end());

要选择下一个,您需要一种方法来跟踪当前位置。因为“下一个”是一个相对术语, 您需要定义下一步

关于java - 如何使用 java regex package.a 选择单词的第一次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33461995/

相关文章:

java - Java代码输出解释-postIncrement运算符

java - ListView 特定项目颜色

java - 在 HTTP Preview 上运行 Web 项目时出现错误 : "Could not find JRE executable" on MAC OS X Yosemite

javascript - 跳出替换全局循环

C++ 正则表达式仅找到 1 个子匹配项

java - Play Framework 2中进行多文件上传的例子

java - 编辑: How do I set variables in a Project pom from a Maven Plugin?

javascript - 在 Python 中用正则表达式替换

sql-server - 从 SQL 中的字符串中删除 SSN(社会安全号码)

javascript - 爆炸字符串的函数?