這個(gè)是完整的代碼;由于不了解你的需求,所以寫了兩種情況的
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供柯橋企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為柯橋眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。
public?class?Main?{
public?static?void?main(String?infos[])?{
//?如果僅僅是字符串在另一個(gè)字符串中出現(xiàn)的位置的話,下面的可以
String?s1?=?"abc?is?from?je?nice";
String?s2?=?"je";
int?index?=?s1.indexOf(s2);
System.out.println("s2在s1中的位置為:"?+?index);
//?如果是字符串在出現(xiàn)的多個(gè)單詞中的位置的話,用下面代碼
String?s3?=?"abc?is?from?je?nice";
String?s4?=?"je";
String[]?array?=?s3.split("?");
for?(int?i?=?1;?i?=?array.length;?i++)?{
if?(s4.equals(array[i?-?1]))?{
System.out.println("s2在s1中的位置為:"?+?i);
break;
}
}
}
}
switch?(表達(dá)式?)?{????????
case?"a":{
}??
case??"c":?{
}
default?:??//沒(méi)有匹配值時(shí)執(zhí)行這里
break;
}
//例如1
int?b?=?1;
switch?(b)?{??//其中case后面跟的值跟switch表達(dá)式的類型匹配
case??1:{
System.out.println(b);????????
break;
}
case?2:{
System.out.println("2");????????
break;
}
default?:??//沒(méi)有匹配值時(shí)執(zhí)行這里
break;
}
//例如2
String?c?=?"c";
switch?(b)?{??//其中case后面跟的值跟switch表達(dá)式的類型匹配
case??"c":{
System.out.println(c);????????
break;
}
case?"d":{
System.out.println("d");????????
break;
}
default?:
break;//沒(méi)有匹配值時(shí)執(zhí)行這里
}
//記得每個(gè)case加上break,不然會(huì)繼續(xù)往下執(zhí)行的
java正則表達(dá)式如何獲取字符串中所有匹配內(nèi)容
java正則表達(dá)式提取需要用到Matcher類。
正則規(guī)則就是“一個(gè)數(shù)字加上大于等于0個(gè)非數(shù)字再加上結(jié)束符”
Pattern pattern
= Pattern.pile("(\\d)[^\\d]*$")
Matcher matcher
= pattern.matcher(s)
if(matcher.find())
System.out.println
(matcher.group(1)); } }
如何獲取字符串中匹配到正則表達(dá)式的子串開
mport java.util.regex.Matcher;import java.util.regex.Pattern;public class Test {public static void main(String[] args) {String s = "A876X"; 把要匹配的字符串寫成正則表達(dá)式,然后要提取的字符使用括號(hào)括起來(lái) 在這里,我們要提取最后一個(gè)數(shù)字,正則規(guī)則就是“一個(gè)數(shù)字加上大于等于0個(gè)非數(shù)字再加上結(jié)束符”Pattern pattern = Pattern.pile("(\\d)[^\\d]*$");Matcher matcher = pattern.matcher(s);if(matcher.find())System.out.println(matcher.group(1));}}
正則表達(dá)式獲取字符串
string pattern=@"font(.+?)/font"
取分組 Match.group[1]
JS如何用正則表達(dá)式 獲取字符串內(nèi)的匹配部份?
實(shí)現(xiàn)的效果:在字符串中abcdefgname='test'sddfhskshjsfsjdfps中獲取name的值test?
實(shí)現(xiàn)的機(jī)制:通過(guò)replace的回調(diào)函數(shù)獲取。
可以通過(guò)下面的代碼獲取匹配部分
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() 方法執(zhí)行的是查找并替換的操作。它將在 stringObject 中查找與 regexp 相匹配的子字符串,然后用 replacement 來(lái)替換這些子串。如果 regexp 具有全局標(biāo)志 g,那么 replace() 方法將替換所有匹配的子串。否則,它只替換第一個(gè)匹配子串。
正則表達(dá)式如何獲取被匹配字符串的匹配組名
java正則提取需要用到Matcher類,下面給出案例示例供參考
需要提取車牌號(hào)中最后一個(gè)數(shù)字,比如說(shuō):蘇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";
把要匹配的字符串寫成正則表達(dá)式,然后要提取的字符使用括號(hào)括起來(lái)
在這里,我們要提取最后一個(gè)數(shù)字,正則規(guī)則就是“一個(gè)數(shù)字加上大于等于0個(gè)非數(shù)字再加上結(jié)束符”
Pattern pattern = Pattern.pile("(\\d)[^\\d]*$");
Matcher matcher = pattern.matcher(s);
if(matcher.find())
System.out.println(matcher.group(1));
}
}
關(guān)于Matcher 中的幾個(gè)方法說(shuō)明:
Mathcer.start()
Matcher.end()
Matcher.group()
當(dāng)使用matches(),lookingAt(),find()執(zhí)行匹配操作后,就可以利用以上三個(gè)方法得到更詳細(xì)的信息.
start()返回匹配到的子字符串在字符串中的索引位置.
end()返回匹配到的子字符串的最后一個(gè)字符在字符串中的索引位置.
group()返回匹配到的子字符串
示例代碼如下,具體功能請(qǐng)參考注釋
Pattern p=Pattern.pile(“\d+”);
Matcher m=p.matcher(“aaa2223bb”);
m.find();匹配2223
m.start();返回3
m.end();返回7,返回的是2223后的索引號(hào)
m.group();返回2223
Mathcer m2=p.matcher(“2223bb”);
m2.lookingAt(); 匹配2223
m2.start(); 返回0,由于lookingAt()只能匹配前面的字符串,所以當(dāng)使用lookingAt()匹配時(shí),start()方法總是返回0
m2.end(); 返回4
m2.group(); 返回2223
Matcher m3=p.matcher(“2223”); 如果Matcher m3=p.matcher(“2223bb”); 那么下面的方法出錯(cuò),因?yàn)椴黄ヅ浞祷豧alse
m3.matches(); 匹配整個(gè)字符串
m3.start(); 返回0
m3.end(); 返回3,原因相信大家也清楚了,因?yàn)閙atches()需要匹配所有字符串
m3.group(); 返回2223
另外,Mathcer類中start(),end(),group()均有一個(gè)重載方法它們是start(int i),end(int i),group(int i)專用于分組操作,Mathcer類還有一個(gè)groupCount()用于返回有多少組.
示例如下:
Pattern p=Pattern.pile(“([a-z]+)(\d+)”);
Matcher m=p.matcher(“aaa2223bb”);
m.find(); 匹配aaa2223
m.groupCount(); 返回2,因?yàn)橛?組
m.start(1); 返回0 返回第一組匹配到的子字符串在字符串中的索引號(hào)
m.start(2); 返回3
m.end(1); 返回3 返回第一組匹配到的子字符串的最后一個(gè)字符在字符串中的索引位置.
m.end(2); 返回7
m.group(1); 返回aaa,返回第一組匹配到的子字符串
m.group(2); 返回2223,返回第二組匹配到的子字符串
注意: 只有當(dāng)匹配操作成功,才可以使用start(),end(),group()三個(gè)方法,否則會(huì)拋出java.lang.IllegalStateException,也就是當(dāng)matches(),lookingAt(),find()其中任意一個(gè)方法返回true時(shí),才可以使用。
C# 正則表達(dá)式獲取字符串?
針對(duì)你的問(wèn)題:
aa是給數(shù)組命名
(?namesubexpression)
其中name是有效的組名稱,而subexpression是任何有效的正則表達(dá)式模式。 name不得包含任何標(biāo)點(diǎn)符號(hào)字符,并且不能以數(shù)字開頭。
這個(gè)方式相當(dāng)于下面這個(gè)表達(dá)式
"(?!0-9a-zA-Z)([0-9]|[a-z]|[A-Z]){1,}"
java正則表達(dá)式如何獲取分組匹配內(nèi)容
String str = "我的QQ是:456456我的電話是:0532214我的郵箱是:aaa@aaa.";
\d 表示0-9 任意一個(gè)數(shù)字 后面有+號(hào) 說(shuō)明這個(gè)0-9單個(gè)數(shù)位出現(xiàn)一到多次 比如21312314
String reg = "\\d+";
Pattern是一個(gè)正則表達(dá)式經(jīng)編譯后的表現(xiàn)模式。
Pattern pattern = Pattern.pile (reg);
Matcher 一個(gè)Matcher對(duì)象是一個(gè)狀態(tài)機(jī)器,它依據(jù)Pattern對(duì)象做為匹配模式對(duì)字符串展開匹配檢查。
Matcher matcher = pattern.matcher (str);
只有執(zhí)行了find()方法 后,狀態(tài)機(jī)matcher才是真正開始進(jìn)行匹配工作的!
while (matcher.find ())
{
matcher.group()返回匹配到的子字符串
System.out.println (matcher.group ());
}
}
Java正則表達(dá)式匹配是否存在字符串。
正則表達(dá)式為:.*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\n" +
"uaibec\n" +
"wabbcd\n" +
"adb\n" +
"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());
}
}
}
你可以直接復(fù)制出來(lái),運(yùn)行一下就可以了
按LS所說(shuō)的確可以。要是一定要用String的話可以用
String[] s;
for(String ss:s)
if(ss.contains("貿(mào)易"))
System.out.println(ss);
這樣的方法。
1、java代碼匹配漢字正則:[\u4E00-\u9FA5]+
2、java代碼匹配漢字和字母正則[\u4E00-\u9FA5]+[a-zA-Z]+
3、js中只可以輸入漢字:
function checkChinese(s)
{
var reg=/[\u4E00-\u9FA5]/g;
if (!reg.test(s)){alert("只允許輸入漢字!");}
}
修改完畢:
修改1:將 return s1放到外部for循環(huán)(表示查找完q字符串沒(méi)有找到a字符串的字符,應(yīng)返回,錯(cuò)誤! return s放到 函數(shù)末尾,(表示查找完成了整個(gè)a字符串,查找成功!)
注:此程序的功能只是在q字符串中查找a字符串的字符,不是 找a字符串!
修改后為:
public class FindChar{
public String exist(String a, String q){
String s="a串的字符全部存在于q串中";
String s1="a串的字符不全部存在于q串中";
int i=0;
outer:
for(i=0;ia.length();i++){
inner:
for(int j=0;jq.length();j++){
if(a.charAt(i)==q.charAt(j)){
System.out.println(j);
continue outer;
}
}
return s1;
}
return s;
}
public static void main(String[] args){
FindChar f=new FindChar();
System.out.println(f.exist("abc","adebc"));
}
}
新聞標(biāo)題:java字符串匹配代碼 字符串正則匹配java
分享地址:http://chinadenli.net/article6/dodidig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、網(wǎng)站營(yíng)銷、網(wǎng)站排名、外貿(mào)網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、營(yíng)銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)