簡體   English   中英

Java Word正則表達式

[英]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"

PatternMatcher類一起使用。 這將匹配完整的單詞。 \\b表示單詞邊界)

您將必須使用Matcher#find方法來檢查字符串是否包含此模式。


注意:-如果要使用String.matches (在這里比較合適),而不是使用PatternMatcher ,則必須在開頭和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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM