Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java regex命令(删除除指定txt以外的所有内容)_Java_Regex - Fatal编程技术网

Java regex命令(删除除指定txt以外的所有内容)

Java regex命令(删除除指定txt以外的所有内容),java,regex,Java,Regex,有没有人知道一个regex命令将采用以下字符串 url = http://184.154.145.114:8013/wlraac name = wlr samplerate = 44100 channels = 2 format = S16le 并删除除以下内容以外的所有内容 wlr 这行会出现多次,在=号之后所有内容都会发生更改,每次我只想保留name= 感谢您的帮助您可以这样做 .*name =\s*(\w+).* 并替换为第1组的内容 看到了吗 我搜索“name=”

有没有人知道一个regex命令将采用以下字符串

 url = http://184.154.145.114:8013/wlraac name = wlr  samplerate = 44100 channels = 2       format = S16le
并删除除以下内容以外的所有内容

 wlr
这行会出现多次,在=号之后所有内容都会发生更改,每次我只想保留name=


感谢您的帮助

您可以这样做

.*name =\s*(\w+).*
并替换为第1组的内容

看到了吗

我搜索“name=”和之前的任何内容。
\s*
匹配以下空白

然后在括号内插入
\w+
\w
将匹配任何字符、数字和下划线(如果您使用选项
Pattern.UNICODE\u character\u 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");

从你的描述中,有点难理解你需要什么。 但regex太过分了。您应该使用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
    ...............
}

当我将这个.*name=\s*(\w+).*更改为这个.*name=\\s*(\\w+).*几乎正确是的,Java需要双重转义。为什么它几乎是正确的?怎么了?因为它完全摆脱了一切,甚至是你用捕获组1的内容替换的WLR?如果显示一些代码,则会更容易。String str=line2.replaceAll(“.*name=\\S*(\\W)。*”,“”);这是我在代码中使用的内容