簡體   English   中英

需要正則表達式幫助-如何使用正則表達式提取字符串?

[英]Need regex help - How to extract a String using regex?

我正在尋找正則表達式從另一個字符串中提取一個字符串。

"sasl.jaas.config=com.sun.security.auth.module.Krb5LoginModule REQUIRED 
storeKey=true principal='test@test.net' validate=true serviceName=esaas 
keyTab='<some value>' useKeyTab=true;"

如何在keyTab =之后提取字符串?我想在單引號內檢索值-

使用正則表達式keyTab ='(。*?)'並匹配組1。在Java中,您的代碼應如下所示:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Regex {
    public static void main(String[] args) {
        String content = "\"sasl.jaas.config=com.sun.security.auth.module.Krb5LoginModule REQUIRED \r\n" + 
            "storeKey=true principal='test@test.net' validate=true serviceName=esaas \r\n" + 
            "keyTab='<some value>' useKeyTab=true;\"";
        Pattern pattern = Pattern.compile("keyTab='(.*?)'");
        Matcher matcher = pattern.matcher(content);
        matcher.find();
        System.out.println(matcher.group(1)); //<some value>
    }
}

在大多數正則表達式引擎中都可以使用的方法是查找您想要的東西和之前的東西。
並將您想要的東西放在捕獲組中

此正則表達式將把捕獲組\\1的引號引起來

\bkeyTab=\'([^\']*)\'

\\b是單詞邊界,以確保keyTab不屬於較大單詞。

您可以使用此表達式來查找它:

keyTab='(.*?)'

它會找到keyTab='...'周圍的所有值,但只會捕獲引號之間的內容。

[\n\r].*keyTab='\s*([^\n\r]*)'

您所需的匹配項將在捕獲組1中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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