java - 使用特定单词java将字符串拆分为单词数组

标签 java string split

我想分割这个字符串以提供我想要的输出

sinXcos(b+c)

输出为

sinX
cos(b+c)

我知道如何分割字符串

200XY

使用

token = 200XY;
String[] mix_token = token.split("(?<=\\D)(?=\\d)|(?<=\\d)(?=\\D)");

但是我怎样才能在像这样的字符串上使用这样的东西

sinXcos(b+c)

或者类似的字符串

sinXcos(b+c)tan(z)

最佳答案

这会起作用..

public static void main(String[] args) {
String text = "sinXcos(b+c)tan(z)";
String patternString1 = "(sin|cos|tan)(?![a-z])\\(?\\w(\\+\\w)?\\)?";
Pattern pattern = Pattern.compile(patternString1);
Matcher matcher = pattern.matcher(text);
while (matcher.find()) {
    System.out.println(matcher.group());
}
}



O/P:
sinX
cos(b+c)
tan(z)

2. Input :"sinabc(X+y)cos(b+c)tan(z)";
O/P :
cos(b+c)
tan(z)

说明:

tring patternString1 = "(sin|cos|tan)(?![a-z])\\(?\\w(\\+\\w)?\\)?";
1. (sin|cos|tan) -->start with (sin or  cos or tan)
2. (?:![a-z]) --> negative lookahead. check if the next character is not in between [a to z].
3. \\(?\\w(\\+\\w)?\\)?--> an optional brace followed by an alphabet followed by a "+" and another alphabet.

关于java - 使用特定单词java将字符串拆分为单词数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24349101/

相关文章:

java - 获取当前位置时尝试调用虚拟方法

java - EJB3 无状态 session Bean 是否允许继承?

javascript - JS Regex 分别替换左右括号

Java比较器接口(interface)和初始化比较器

php - 如何在 PHP 中将逗号和 "and"与 preg_split 匹配

string - Scala StringLike split 方法为前导空格创建额外的双引号

java - Hibernate 在插入子对象时插入重复的父对象

java - 安卓工作室 : 'C:\Program Files\Java\jdk1.8.0_51\bin\java.exe' ' finished with non-zero exit value 1

java - Android:查找字符串中的特定字符

mysql - 如何将将一列分成两列的 MySQL 查询结果添加到表中?