當前位置:首頁 » 編程語言 » java正則匹配多個

java正則匹配多個

發布時間: 2023-01-30 23:27:24

A. 怎麼用java寫一個正則表達式去匹配包含一個或多個「*」的字元串

Pattern pattern = Pattern.compile("^[^\\*]*\\*+.*$");
Matcher matcher = pattern.matcher(你要匹配的字元串);
if(matcher.matches())
{
//TODO:匹配
}
else
{
//TODO:不匹配
}

上面的代碼應該可以滿足你的要求,不過你要判斷是否包含一個*。為什麼不直接用contains("*") 或者 indexOf("*") > 0 呢?呵呵,希望對你有所幫助。

B. java一個字元串匹配多個正則表達式如何弄

正則默認為與(&)關系不用加什麼直接a*b*就可以了,只匹配多個a之後跟著多個b

C. java 正則表達式matcher.group()匹配多種結果的規則

這是由正則表達式的匹配策略所導致的,如果想要得到多個小的匹配結果你需要將正則表達式改為:

Stringreg="乘+(.*?)+車";

即可得到想要的結果:

具體原理你可以查看這個鏈接:http://blog.csdn.net/luoweifu/article/details/42759439 講的很詳細

D. java正則表達式如何獲取字元串中所有匹配內容

java正則表達式如何獲取字元串中所有匹配內容

java正則表達式提取需要用到Matcher類。

正則規則就是「一個數字加上大於等於0個非數字再加上結束符」

Pattern pattern

= Pattern.pile("(\d)[^\d]*$")

Matcher matcher

= pattern.matcher(s)

if(matcher.find())

System.out.println

(matcher.group(1)); } }

如何獲取字元串中匹配到正則表達式的子串開

mport java.util.regex.Matcher;import java.util.regex.Pattern;public class Test {public static void main(String[] args) {String s = "A876X"; 把要匹配的字元串寫成正則表達式,然後要提取的字元使用括弧括起來 在這里,我們要提取最後一個數字,正則規則就是「一個數字加上大於等於0個非數字再加上結束符」Pattern pattern = Pattern.pile("(\d)[^\d]*$");Matcher matcher = pattern.matcher(s);if(matcher.find())System.out.println(matcher.group(1));}}

正則表達式獲取字元串

string pattern=@"<font>(.+?)</font>"
取分組 Match.group[1]

JS如何用正則表達式 獲取字元串內的匹配部份?

實現的效果:在字元串中abcdefgname='test'sddfhskshjsfsjdfps中獲取name的值test
實現的機制:通過replace的回調函數獲取。

可以通過下面的代碼獲取匹配部分

var str = "abcdefgname='test'sddfhskshjsfsjdfps";

var reg = /name='((w|-|s)+)/ig;

str.replace(reg, function() {
console.log(arguments.length); 5
console.log(arguments[1]);test
});

字元串 stringObject 的 replace() 方法執行的是查找並替換的操作。它將在 stringObject 中查找與 regexp 相匹配的子字元串,然後用 replacement 來替換這些子串。如果 regexp 具有全局標志 g,那麼 replace() 方法將替換所有匹配的子串。否則,它只替換第一個匹配子串。

正則表達式如何獲取被匹配字元串的匹配組名

java正則提取需要用到Matcher類,下面給出案例示例供參考
需要提取車牌號中最後一個數字,比如說:蘇A7865提取5,蘇A876X提取6
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
String s = "A876X";
把要匹配的字元串寫成正則表達式,然後要提取的字元使用括弧括起來
在這里,我們要提取最後一個數字,正則規則就是「一個數字加上大於等於0個非數字再加上結束符」
Pattern pattern = Pattern.pile("(\d)[^\d]*$");
Matcher matcher = pattern.matcher(s);
if(matcher.find())
System.out.println(matcher.group(1));
}
}
關於Matcher 中的幾個方法說明:
Mathcer.start()
Matcher.end()
Matcher.group()
當使用matches(),lookingAt(),find()執行匹配操作後,就可以利用以上三個方法得到更詳細的信息.
start()返回匹配到的子字元串在字元串中的索引位置.
end()返回匹配到的子字元串的最後一個字元在字元串中的索引位置.
group()返回匹配到的子字元串
示例代碼如下,具體功能請參考注釋
Pattern p=Pattern.pile(「d+」);
Matcher m=p.matcher(「aaa2223bb」);
m.find();匹配2223
m.start();返回3
m.end();返回7,返回的是2223後的索引號
m.group();返回2223
Mathcer m2=p.matcher(「2223bb」);
m2.lookingAt(); 匹配2223
m2.start(); 返回0,由於lookingAt()只能匹配前面的字元串,所以當使用lookingAt()匹配時,start()方法總是返回0
m2.end(); 返回4
m2.group(); 返回2223
Matcher m3=p.matcher(「2223」); 如果Matcher m3=p.matcher(「2223bb」); 那麼下面的方法出錯,因為不匹配返回false
m3.matches(); 匹配整個字元串
m3.start(); 返回0
m3.end(); 返回3,原因相信大家也清楚了,因為matches()需要匹配所有字元串
m3.group(); 返回2223
另外,Mathcer類中start(),end(),group()均有一個重載方法它們是start(int i),end(int i),group(int i)專用於分組操作,Mathcer類還有一個groupCount()用於返回有多少組.
示例如下:
Pattern p=Pattern.pile(「([a-z]+)(d+)」);
Matcher m=p.matcher(「aaa2223bb」);
m.find(); 匹配aaa2223
m.groupCount(); 返回2,因為有2組
m.start(1); 返回0 返回第一組匹配到的子字元串在字元串中的索引號
m.start(2); 返回3
m.end(1); 返回3 返回第一組匹配到的子字元串的最後一個字元在字元串中的索引位置.
m.end(2); 返回7
m.group(1); 返回aaa,返回第一組匹配到的子字元串
m.group(2); 返回2223,返回第二組匹配到的子字元串
注意: 只有當匹配操作成功,才可以使用start(),end(),group()三個方法,否則會拋出java.lang.IllegalStateException,也就是當matches(),lookingAt(),find()其中任意一個方法返回true時,才可以使用。

C# 正則表達式獲取字元串?

針對你的問題:
<aa>是給數組命名
(?<name>subexpression)
其中name是有效的組名稱,而subexpression是任何有效的正則表達式模式。 name不得包含任何標點符號字元,並且不能以數字開頭。
這個方式相當於下面這個表達式
"(?<!0-9a-zA-Z)([0-9]|[a-z]|[A-Z]){1,}"

java正則表達式如何獲取分組匹配內容

String str = "我的QQ是:456456我的電話是:0532214我的郵箱是:aaa@aaa.";
d 表示0-9 任意一個數字 後面有+號 說明這個0-9單個數位出現一到多次 比如21312314
String reg = "\d+";
Pattern是一個正則表達式經編譯後的表現模式。
Pattern pattern = Pattern.pile (reg);
Matcher 一個Matcher對象是一個狀態機器,它依據Pattern對象做為匹配模式對字元串展開匹配檢查。
Matcher matcher = pattern.matcher (str);
只有執行了find()方法 後,狀態機matcher才是真正開始進行匹配工作的!
while (matcher.find ())
{
matcher.group()返回匹配到的子字元串
System.out.println (matcher.group ());
}
}

Java正則表達式匹配是否存在字元串。

正則表達式為:.*a.*b.*c.*
package .test;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexTest {
/**
* @param args
*/
public static void main(String[] args) {
TODO Auto-generated method stub
String source = "abcdefg " +
"uaibec " +
"wabbcd " +
"adb " +
"acb";
String regex = "(.*a.*b.*c.*)";
Pattern pattern = Pattern.pile(regex,Pattern.MULTILINE);
Matcher matcher = pattern.matcher(source);
while(matcher.find()){
System.out.println(matcher.group());
}
}
}
你可以直接復制出來,運行一下就可以了

熱點內容
小數化分數c語言 發布:2024-03-29 06:20:16 瀏覽:560
如何搭建ai伺服器 發布:2024-03-29 06:20:10 瀏覽:492
用低配置手機玩游戲掉幀怎麼辦 發布:2024-03-29 06:20:06 瀏覽:587
安卓系統的微信如何安裝 發布:2024-03-29 05:48:45 瀏覽:992
銀行密碼泄露應該辦理什麼手續 發布:2024-03-29 05:01:40 瀏覽:522
sql插入二進制 發布:2024-03-29 05:00:32 瀏覽:22
安卓外部資源怎麼下載 發布:2024-03-29 04:01:17 瀏覽:245
華為被加密碼的相冊在哪裡查看 發布:2024-03-29 04:00:27 瀏覽:748
自動欣悅版有哪些配置 發布:2024-03-29 03:48:26 瀏覽:287
如何用腳本搶 發布:2024-03-29 03:01:59 瀏覽:120