我试图删除并替换数组中第13个逗号之前的所有内容,如下所示:
{1,1,0,0,0,4,0,0,0,0,20,4099,4241,706,706,714,714,817,824,824,824,2,2,2,2,1,1,1,1},
到哪里:
{706,706,714,714,817,824,824,824,2,2,2,2,1,1,1,1},
参考:我在Notepad ++
中使用正则表达式。
我发现这个regex
字符串匹配某个逗号后的所有内容到该行的结尾:
,[^,]*,[^,]*,[^,]*,[^,]*,[^,]*,[^,]*,[^,]*$
但是如何从一开始就把它转过来?
感谢您的时间和帮助,谢谢。
答案 0 :(得分:2)
$
匹配主题字符串的结尾,^
匹配开头。所以,如果你想匹配并包括第13个逗号:
^[^,]*,[^,]*,[^,]*,[^,]*,[^,]*,[^,]*,[^,]*,[^,]*,[^,]*,[^,]*,[^,]*,[^,]*,[^,]*,
替换为" {"。
答案 1 :(得分:2)
您可以使用
{(?:[^,}]*,){13}
仅用{
替换。请参阅regex demo。即使您有{...}
个子字符串跨越行并且其间的项目少于13个,此版本也能正常工作。
<强>详情
{
- {
(?:[^,}]*,){13}
- 连续13次出现
[^,}]*
- 除,
和}
以外的0 +字符(}
对于避免从一个{...}
子字符串溢出到另一个字符串非常重要),
- 逗号您也可以使用
{\K(?:[^,}]*,){13}
用空字符串替换。见another regex demo。您无需替换为{
,因为\K
会忽略匹配中的第一个{
,因此会将其保留在最终文本中。
答案 2 :(得分:1)
尝试以下查找和替换:
<强>查找强>
\{(?:[^,]*,){13}(.*)
<强>替换强>
{$1
上述模式可能会稍微调整,具体取决于您对这个括号内字符串可能出现的位置,您想要覆盖/避免的边缘情况等等。