Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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
Regex 记事本++;:如何删除字符串前后的所有文本_Regex_Notepad++ - Fatal编程技术网

Regex 记事本++;:如何删除字符串前后的所有文本

Regex 记事本++;:如何删除字符串前后的所有文本,regex,notepad++,Regex,Notepad++,我只想保留文本中每一行的代码,它的正则表达式是什么 {"name": "Canada", "countryCd": "CA", "code": 393}, {"name": "Syria", "countryCd": "SR", "code": 3535}, {"name": "Germany", "countryCd": "GR", "code": 3213} 预期结果将是 CA SR GR 有点像黑客(见@Totos comment),但符合您的要求: .*"([A-Z]{2})"

我只想保留文本中每一行的代码,它的正则表达式是什么

 {"name": "Canada", "countryCd": "CA", "code": 393},
 {"name": "Syria", "countryCd": "SR", "code": 3535},
 {"name": "Germany", "countryCd": "GR", "code": 3213}
预期结果将是

CA
SR
GR
有点像黑客(见@Totos comment),但符合您的要求:

.*"([A-Z]{2})".*

这需要替换为
$1
,请参见(侧节点:德国不是通常
GER
?)

在记事本++中,我会执行查找和替换,如:

.*?"countryCd": "([^"]+)".*
并将其替换为:

\1
这样,如果出于某种原因,您的国家/地区代码不只是两个字母,它将被正确捕获。[^“]是一个负字符类,表示任何不是”的字符,并且+使其至少包含1个字符。我发现使用否定字符类实际上是有意的


在本例中,您希望捕获country CD后面引号中的任何内容,这就可以了。

使用JSON解析器或编写自己的解析器。听起来很简单,一个正则表达式可以在双引号之间查找两个大写字母。到目前为止你都试了些什么?我们可以帮助你使它工作。匹配两个大写字母的正则表达式是什么?我想你根本没有研究过这个问题。[A-Z]{2}会找到两个大写字母。然后,如果需要,添加全局或多行标志/gmI刚刚放置的虚拟示例。