java - 仅捕获正则表达式字符串的第一次出现

标签 java regex

目前,我正在 try catch 每行中第一次出现的“空格”或“->”。但是,我的表达式捕获了所有出现的分隔符。

String delimiters = "(->)|[\\s]+"
String[] splittedLine = planArray[i].split(delimiters)

其中 planArray[i] 是我们尝试用正则表达式分割的字符串,例如 左键单击 100 100

我希望 leftClick 为 splittedLine[0]100 100splittedLine[1]

谢谢

最佳答案

使用version of split具有 limit 参数并将结果限制为 2 部分:

String line = "leftClick 100 100";
String delimiters = "(->)|[\\s]+";
String[] splittedLine = line.split(delimiters, 2);      
System.out.println(Arrays.toString(splittedLine));
// [leftClick, 100 100]

(此外,您可以将正则表达式简化为 "->|\\s+"。)

关于java - 仅捕获正则表达式字符串的第一次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46160052/

相关文章:

java - 如何向远程服务器上的MQ发送SWFT消息?

java - 类的每个对象都有自己的每个非静态成员变量的副本

java - @OneToMany 不获取现有的子项

java - 按字符拆分字符串

php - 从 php 字符串中删除所有标点符号以获得友好的 seo url

java - 制作词法分析器

javascript - js正则表达式匹配两组定界符,可能出现多次

java - 从自然语言创建正则表达式

regex - Boost regex用于解析字符串中的键/值对

java - Eclipse中自动生成串口版UID