Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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 HPUXPARISC中物理内存的正则表达式_Java_Regex - Fatal编程技术网

Java HPUXPARISC中物理内存的正则表达式

Java HPUXPARISC中物理内存的正则表达式,java,regex,Java,Regex,输入 grep "Physical" /var/adm/syslog/syslog.log 输出 May 4 21:07:00 getz vmunix: Physical: 6289408 Kbytes, lockable: 4604660 Kbytes, available: 5417880 Kbytes 或者从下面找到我6289408 May 4 21:07:00 getz vmunix: Physical: 6289408 Kbytes 我想要Physical:

输入

grep "Physical" /var/adm/syslog/syslog.log
输出

 May  4 21:07:00 getz vmunix:     Physical: 6289408 Kbytes, lockable: 4604660 Kbytes, available: 5417880 Kbytes
或者从下面找到我
6289408

May  4 21:07:00 getz vmunix:     Physical: 6289408 Kbytes
我想要
Physical:
的值,只需要数字,如何在简单的正则表达式中做到这一点我正在使用java(但我这里只需要正则表达式)

注意:您可以为我测试正则表达式

更新

让我把问题说得更清楚些

  • 我有我的java代码,我正在编写插件
  • 我只需要以某种方式获取HPUXPARISC系统的物理内存,无论是否使用正则表达式,我都需要从下面的输出中获取6289408

    May  4 21:07:00 getz vmunix:     Physical: 6289408 Kbytes, lockable: 4604660 Kbytes, available: 5417880 Kbytes
    

  • 这是我使用命令
    grep“physical”/var/adm/syslog/syslog.log
    获取
    physical:(\d+)

    以下是java解决方案:

    public static void main(String[] args)
    {
        String input = " May  4 21:07:00 getz vmunix:     Physical: 6289408 Kbytes, lockable: 4604660 Kbytes, available: 5417880 Kbytes";
        String regex = "^.*Physical: (\\d*) .*$"; // <-- LOOK HERE FOR REGEX!
        String physical = input.replaceAll(regex, "$1"); // <-- How to extract group 1 in java
        System.out.println(physical); // "6289408"
    }
    

    捕获
    物理组的第1组:(\d+)

    以下是java解决方案:

    public static void main(String[] args)
    {
        String input = " May  4 21:07:00 getz vmunix:     Physical: 6289408 Kbytes, lockable: 4604660 Kbytes, available: 5417880 Kbytes";
        String regex = "^.*Physical: (\\d*) .*$"; // <-- LOOK HERE FOR REGEX!
        String physical = input.replaceAll(regex, "$1"); // <-- How to extract group 1 in java
        System.out.println(physical); // "6289408"
    }
    
    使用awk

    awk '{print $7}' input
    6289408
    
    削减

    perl

    在更新中,您添加了java;下面是一个工作示例:

    import java.util.regex.*;
    
    public class SimpleRegexTest {
        public static void main(String[] args)
        {
            String sampleText = " May  4 21:07:00 getz vmunix:     Physical: 6289408 Kbytes, lockable: 4604660 Kbytes, available: 5417880 Kbytes";
            String sampleRegex = "Physical: (\\d+)";
            java.util.regex.Pattern p = java.util.regex.Pattern.compile(sampleRegex);
            java.util.regex.Matcher m = p.matcher(sampleText);
    
            if (m.find()) {
                String matchedText = m.group(1);
                System.out.println(matchedText);
            } else {
                System.out.println("didn't match");
            }
        }
    }
    
    给出:

    $ java SimpleRegexTest
    6289408
    
    使用awk

    awk '{print $7}' input
    6289408
    
    削减

    perl

    在更新中,您添加了java;下面是一个工作示例:

    import java.util.regex.*;
    
    public class SimpleRegexTest {
        public static void main(String[] args)
        {
            String sampleText = " May  4 21:07:00 getz vmunix:     Physical: 6289408 Kbytes, lockable: 4604660 Kbytes, available: 5417880 Kbytes";
            String sampleRegex = "Physical: (\\d+)";
            java.util.regex.Pattern p = java.util.regex.Pattern.compile(sampleRegex);
            java.util.regex.Matcher m = p.matcher(sampleText);
    
            if (m.find()) {
                String matchedText = m.group(1);
                System.out.println(matchedText);
            } else {
                System.out.println("didn't match");
            }
        }
    }
    
    给出:

    $ java SimpleRegexTest
    6289408
    
    (物理\:\s\d{0,10}) 这比\d+

    更好(物理\:\s\d{0,10})

    这比\d+

    @Bohemian要好:我只需要正则表达式,我有java代码可以解析正则表达式并显示结果。检查我更新的qn。帮我弄到正则表达式:)谢谢你的java代码。。但我已经准备好了java代码。我只是在写插件,我只需要提供正则表达式,它会给我返回结果。所以我希望得到一个
    正则表达式
    ,让我得到
    物理:
    的值你真的读过我的答案了吗?里面有正则表达式@波希米亚人:看一看,我试过你的正则表达式,但似乎不起作用。@Abhishek Simon注意到我捕获的是组
    $1
    (或者
    $2
    ),而不是整个正则表达式。对于只捕获大小的整洁正则表达式,请使用以下命令:
    (?@Bohemian:我只需要正则表达式,我有java代码可以解析正则表达式并显示结果。请检查我更新的qn。请帮我获取正则表达式:)感谢java代码。。但我已经准备好了java代码。我只是在写插件,我只需要提供正则表达式,它会给我返回结果。所以我希望得到一个
    正则表达式
    ,让我得到
    物理:
    的值你真的读过我的答案了吗?里面有正则表达式@波希米亚人:看一看,我试过你的正则表达式,但似乎不起作用。@Abhishek Simon注意到我捕获的是组
    $1
    (或者
    $2
    ),而不是整个正则表达式。对于只捕获大小的整洁正则表达式,请使用以下命令:
    (?@Fredrik:我如何使用lookahead忽略直到
    物理:
    ?那么可能我可以得到它:)@Fredrik:感谢java代码。。但我已经准备好了java代码。我只是在写插件,我只需要提供正则表达式,它会给我返回结果。所以我希望得到一个
    regex
    ,它能让我
    物理:
    的值见上面第7行和第11行;还是我完全忽略了你的问题?regexp是
    Physical:(\\d+”
    ,您可以使用
    m.group(1)提取值
    @Fredrik:不需要java代码。转到这里,您可以粘贴我的输出并返回
    物理:
    的值。例如,我只需要一个正则表达式,即获取大于2的第一个数值digits@Fredrik:我如何使用lookahead忽略直到
    物理:
    ?那么可能我可以得到它:)@Fredrik:谢谢你的java代码。。但是我已经准备好了java代码。我正在编写插件,只需要提供正则表达式,它就会返回结果。所以我希望得到一个
    regex
    ,它能让我
    物理:
    的值见上面第7行和第11行;或者我完全没有回答你的问题?regexp是
    物理:(\\d+)
    然后使用
    m.group(1)
    @Fredrik提取值:不需要java代码。转到这里,您可以粘贴我的输出并返回
    物理:
    的值。i、 例如,我只想要一个正则表达式,即获取第一个数值大于2个连续数字。为什么我首先用正确的整洁单行解决方案回答,而另一个代码更差的人(代码更多,但没有更多值)得到了勾号和投票???为什么我首先用正确的整洁单行解决方案回答,但是另一个有着更糟糕代码(更多代码却没有更多价值)答案的人得到了选票???