[英]Java Word Regular Expression
我對Java正則表達式非常不好,所以希望大家能幫幫我。
String variable = "My life is better ";
String variable2 = "My life01 is better";
現在,我必須編寫一個代碼,如果字符串只有“ life”,它將返回true
因此,我應該僅對變量而不對變量2獲取TRUE,因為它也具有生命,但也具有“ 01”。
〜謝謝。
我努力了
if (variable.contains("life")){
System.out.println("TRUE");}
兩者均返回TRUE。
見解決方案:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Pattern p = Pattern.compile("\\blife\\b");
Matcher m = p.matcher("life0 is better");
boolean b = m.find();
System.out.println(b);
}
}
使用單詞邊界\\b
匹配。
有關詳細信息,請參見Java Pattern文檔。
請注意,您可能需要將其寫入\\\\b
才能正確轉義。 該模式需要字符串\\b
,當在.java
代碼中使用該字符串時(例如,不能從文件中讀取它!),必須以Java轉義的形式將其寫為"\\\\blife\\\\b"
。
使用以下正則表達式:-
"\blife\b"
與Pattern
和Matcher
類一起使用。 這將匹配完整的單詞。 ( \\b
表示單詞邊界)
您將必須使用Matcher#find
方法來檢查字符串是否包含此模式。
注意:-如果要使用String.matches
(在這里比較合適),而不是使用Pattern
和Matcher
,則必須在開頭和end
添加.*
。 因為, String.matches
匹配整個字符串。
例如:-
String str = "asdf life asdf";
System.out.println(str.matches("\\blife\\b")); // Prints false
System.out.println(str.matches(".*\\blife\\b.*")); // Prints true
在第二個Regex中, .*
匹配life
之前和之后的字符串。
使用String.matches()
方法和Regex \\b
匹配單詞邊界。
public class StringChecker {
String variable1 = "My life is better ";
String variable2 = "My life01 is better";
System.out.println("variable1: " + containsString(variable1));
System.out.println("variable1: " + containsString(variable2));
//Returns true if the string contains "life"
public boolean containsString(String s){
return s.matches(".*(\\blife\\b).*");
}
}
package com.rampukar;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class DemoRegx {
public static void main(String[] args) {
String email = "ram@example.com";
String EMAIL_PATTERN = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@" + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
Pattern pt_mail = Pattern.compile(EMAIL_PATTERN);
Matcher mt_mail = pt_mail.matcher(email);
if (mt_mail.matches()) {
System.out.println("Valid");
} else {
System.out.println("In-Valid");
}
System.out.println("---------------------");
String name = "Ram Pukar";
Pattern pt_name = Pattern.compile("[a-zA-Z ]{2,}");
Matcher mt_name = pt_name.matcher(name);
if (mt_name.matches()) {
System.out.println("Valid");
} else {
System.out.println("In-Valid");
}
System.out.println("---------------------");
String user = "ram123";
Pattern pt_user = Pattern.compile("[a-zA-Z0-9]{2,}");
Matcher mt_user = pt_user.matcher(user);
if (mt_user.matches()) {
System.out.println("Valid");
} else {
System.out.println("In-Valid");
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.