⑴ 怎麼用java寫一個正則表達式去匹配包含一個或多個「*」的字元串
在Java中編寫正則表達式以匹配包含一個或多個星號(*)的字元串,可以採用以下方式:
Pattern pattern = Pattern.compile("^[^\\*]*\\*+.*$");
Matcher matcher = pattern.matcher(你要匹配的字元串);
if(matcher.matches()) {
//TODO:匹配
}
else {
//TODO:不匹配
}
這段代碼設計用來檢測給定的字元串是否至少包含一個星號(*)。它首先定義了一個Pattern對象,用於匹配以零個或多個非星號字元開頭,接著是至少一個星號,最後是任意數量的任何字元。
如果你的目標僅僅是檢查字元串中是否包含一個星號,那麼直接使用contains("*")或indexOf("*") > 0會更為簡潔和高效。然而,上述正則表達式提供了一種更靈活的方法,能夠滿足更復雜的匹配需求。
例如,當你需要確保字元串至少包含一個星號,並且星號前後有特定的字元模式時,這個正則表達式就顯得非常有用。
希望這段解釋能幫助你理解如何在Java中使用正則表達式來匹配包含一個或多個星號的字元串。
值得注意的是,正則表達式中的每個符號都有其特定的含義:
^:匹配字元串的開始。
[^\\*]*:匹配零個或多個非星號字元。
\\*+:匹配至少一個星號。
.*:匹配零個或多個任意字元。
$:匹配字元串的結束。
通過組合這些符號,你可以構建出滿足各種復雜匹配需求的正則表達式。
如果你有任何疑問或需要進一步的幫助,請隨時提出。
⑵ JAVA里,如何匹配一個多位數(正則表達式)
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public final class Second {
public static void main( String[] args )
{
String regex = "[0-9]{1,}";
String str = " 33 444 5555";
Pattern pat = Pattern.compile(regex);
Matcher matcher = pat.matcher(str);
int i=0;
while (matcher.find()) {
String temp = str.substring(matcher.start()+7*i,matcher.end()+7*i);
str=str.replaceAll(temp, "<b>"+temp+"</b>");
i++;
}
System.out.println(str);
}
}