在linux中执行以下命令时
root@11.222.33.38.11:~# cat /etct/user.conf
我将获得以下数据。
[General]
ui_language=US_en
由此,我仅需要使用正则表达式来获取ui_language(US_en)的值。
答案 0 :(得分:1)
您可以通过管道传输到grep和sed:
cat foo.txt | grep 'ui_language=' | sed 's/ui_language=\(.*\)/\1/g'
用您的文件名替换foo.txt。
示例:
host$ cat foo.txt
[General]
ui_language=US_en
host$ cat foo.txt | grep 'ui_language=' | sed 's/ui_language=\(.*\)/\1/g'
US_en
host$
编辑:我没意识到你想使用Java。最初未使用Java对其进行标记。 您可以执行以下操作:
MatchExample.java
import java.util.regex.*;
import java.io.File;
import java.nio.file.Files;
public class MatchExample {
public static void main(String[] args) throws Exception {
byte[] bytes = Files.readAllBytes((new File(args[0])).toPath());
String s = new String(bytes,"UTF-8");
Pattern pattern = Pattern.compile("ui_language=(.*)");
Matcher matcher = pattern.matcher(s);
if (matcher.find()){
System.out.println(matcher.group(1));
}
}
}
这将文件名作为第一个参数。
编译:
host$ javac MatchExample.java
运行:
host$ java MatchExample foo.txt
US_en
host$
答案 1 :(得分:0)
Pattern pattern = Pattern.compile("US_en");
Matcher matcher = pattern.matcher(mydata);
if (matcher.find()){
System.out.println(matcher.group(1));
}
在这里,mydata是您要从中获取数据的字符串