java中用于从行中删除px的正则表达式

java中用于从行中删除px的正则表达式,java,regex,regex-lookarounds,Java,Regex,Regex Lookarounds,我想按照的“height”:“208px”重写每一次出现的东西,直到的“height”:208。入口的高度可能不同 我已经能够以编程的方式完成这项工作,但是我想用正则表达式来减少代码,而这在很大程度上是不成功的。 你能帮我找到一个正则表达式吗 例如: "elements": [ { "minHeight": 64, "maxHeight": 1028, "height": "208px", "minWidth": 48,

我想按照
的“height”:“208px”
重写每一次出现的东西,直到
的“height”:208
。入口的高度可能不同

我已经能够以编程的方式完成这项工作,但是我想用正则表达式来减少代码,而这在很大程度上是不成功的。 你能帮我找到一个正则表达式吗

例如:

"elements": [
    {
        "minHeight": 64,
        "maxHeight": 1028,
        "height": "208px",
        "minWidth": 48,
        "maxWidth": 1028,
        "defaultWidth": 512,
        "widgetid": "5892295a3ba871c00a000202"
    }
应改写为:

"elements": [
    {
        "minHeight": 64,
        "maxHeight": 1028,
        "height": 208,
        "minWidth": 48,
        "maxWidth": 1028,
        "defaultWidth": 512,
        "widgetid": "5892295a3ba871c00a000202"
    }

我可能会选择这样的东西:
(?@anubhava,嗯,原始输入没有px,用于maxWidth。只有高度有一个“px”,需要删除。@anubhava,谢谢,但如前所述,这将删除所有px。而且,它看起来像是“208”,而不是208,整数。我不完全理解如何在java中使用它。我是否搜索这个字符串,并替换为什么?介意用一些java语法更新您的响应吗?请尝试一下,谢谢。但是由于这是一行接一行的工作,在大文件上会相当慢。是否可以只替换那些有一些字符串的行类似于“height”:“208px”,加上“height”:208,作为一个单元测试,我做了以下操作,但它给了我一个异常,即“线程中的异常”main“java.util.regex.PatternSyntaxException:Look-behind组在索引10附近没有明显的最大长度(?这几乎很棒。只是它仍然有引号,转换后的字符串看起来像这样的“高度”:“208”。我希望达到“高度”:208,你能试试这个字符串,并验证它是否给出了预期的输出吗?输入:text=“\”height\:\”208px\”,我得到的输出是“height”:,
public static removePX( final String text ) {
    final String regex = "((?<=\": )\"(?=\\d{1,4}px\"))|((?<=\": \"\\d{1,4})px\")";
    return text.replaceAll( regex, "" );
}
public static removePX( final String text ) {
    final String regex = "((?<=\"height\": )\"(?=\\d{1,4}px\"))|((?<=\"height\": \"\\d{1,4})px\")";
    return text.replaceAll( regex, "" );
}