我想要一个正则表达式仅获取逗号分隔列表中的前 2 个数字,并用 x 分隔。
Example: 1024,640,2048,1280,60
Desired: 1024x640
到目前为止我最好的解决方案:
Search: (\d+),(\d+),(\d+),(\d+),(\d+)
Replace: $1x$2
我的解决方案的问题是,它仅在列表始终包含 5 个项目时才有效。
我的第一次尝试是:
Search: (\d+),(\d+)
Replace: $1x$2
但这不起作用,显然是因为我的搜索是“贪婪的”。?
从那时起我就了解到,可以通过添加(例如)来进行“不贪婪”的搜索,.* --> .*?
但我尝试了?
多种方式添加,但它从来没有起作用。
谢谢你的帮助
这不是贪心与否的问题,而是确保你:
^
断言(,\d+)*
)。如果列表不在输入的开头,并且您仍然需要匹配这两个元素,则使用后视断言来要求第一个数字之前不应有逗号:
我已经尝试过你的模式:
在regex101网站中,输出为:
然后我们需要删除不匹配的字符:
现在不匹配的字符存储在 中,所以当我们用输出
$3
替换它时将是$1x$2
1024x640