我有一个像blahROOT这样的词。我如何使用正则表达式在java中提取blah。我有许多以ROOT结尾的单词。我只想提取第一个单词。
答案 0 :(得分:3)
String blah = "blahROOT".substring(0, "blahROOT".indexOf("ROOT"));
答案 1 :(得分:3)
试试这个正则表达式:
([\w\d\s]+)ROOT
这样的事情应该有效:
Pattern p = Pattern.compile("([\\w\\d\\s]+)ROOT");
Matcher m = p.matcher(mystr);
String word = null;
if (m.find()) word = m.group(0);
答案 2 :(得分:3)
你必须为此使用正则表达式吗?
如果您的所有单词都以ROOT结尾,您可以这样做:
String s = "blahROOT";
s.substring(0, s.length() - "ROOT".length());
答案 3 :(得分:0)
如果您有"blahROOT fooROOT barROOTS"
之类的字符串,并且想要提取blah
和foo
但不提取bar
(因为它以ROOT结尾 S ),试试这个表达式:(\w+)ROOT\b
。请注意,如果单词以ROOT
完全结束(因此ROOT
),它会匹配\b
之前的任何部分。
然后使用这样的东西:
Pattern p = Pattern.compile("(\\w+)ROOT\\b");
Matcher m = p.matcher("blahROOT fooROOT barROOTS");
while (m.find()) { //loop through all matches
String part = m.group(1); //the word parts you look for, note that group 0 represents the entire match
}