我想重写"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"
}
答案 0 :(得分:2)
我可能会选择:((?<=": )"(?=\d{1,4}px"))|((?<=": "\d{1,4})px")
public static removePX( final String text ) {
final String regex = "((?<=\": )\"(?=\\d{1,4}px\"))|((?<=\": \"\\d{1,4})px\")";
return text.replaceAll( regex, "" );
}
这将在"
后":
以及xxxpx"
之后px"
查找": "xxx
并删除它。
假设它始终是高度字段:((?<="height": )"(?=\d{1,4}px"))|((?<="height": "\d{1,4})px")
public static removePX( final String text ) {
final String regex = "((?<=\"height\": )\"(?=\\d{1,4}px\"))|((?<=\"height\": \"\\d{1,4})px\")";
return text.replaceAll( regex, "" );
}
这将在"
后"height":
以及xxxpx"
之后px"
查找"height": "xxx
并删除它。
(?<=x)
称为“lookbehind”,(?=x)
称为“lookahead”。
您可以查看RegExr.com上的Cheatsheet,了解有关正则表达式的更多信息。 不幸的是,实时工具仅支持前瞻,但不支持外观。