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刚刚放置的虚拟示例。