簡體   English   中英

regex命令(刪除除指定的txt外的所有內容)

[英]regex command(remove everything but specified txt)

是否有人知道一個正則表達式命令,該命令將使用以下字符串

 url = http://184.154.145.114:8013/wlraac name = wlr  samplerate = 44100 channels = 2       format = S16le

並刪除除以下內容外的所有內容

 wlr

該行將出現多次,其中所有內容都在=符號后更改,而每次我要保留的內容都是name =之后的內容

任何幫助表示贊賞

你可以做類似的事情

.*name =\s*(\w+).*

並替換為第1組的內容

在Regexr上查看

我搜索“名稱=“及其他任何內容。 \\s*與以下空格匹配。

然后是\\w+放在方括號中。 \\w將匹配任何字符,數字和下划線(如果您使用選項Pattern.UNICODE_CHARACTER_CLASS否則將僅堅持ASCII)。 由於括號,它存儲在第一組中。

String in = " url = http://184.154.145.114:8013/wlraac name = wlr  samplerate = 44100 channels = 2       format = S16le";

Pattern r = Pattern.compile(".*name =\\s*(\\w+).*");
Matcher m = r.matcher(in);

String result = m.replaceAll("$1");
System.out.println(result);

還是你的代碼

String str = line2.replaceAll(".*name =\\S*(\\W).*", "$1");

從您的描述中很難理解您的需求。 但是正則表達式是多余的。 您應該像這樣使用smth:

String s = myString.substring(myString.indexOf("name =")+6);

我建議您提取 =之后出現的單詞,即

Pattern p = Pattern.compile("=\\s*(\\S+)");
Matcher m = p.matcher(str);
if (m.find()) {
    String value = m.group(1); // contains your wlr
    ...............
}

暫無
暫無

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

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