我的文件中有以下两种不同的行模式。我希望正则表达式模式为每行中双引号的字符串创建组。
#define kvalue NSLocalizedString(@"value", comment:@"1223")
此处group(1)=“值”,group(2)=“ 1223”
#define kvalue NSLocalizedString(@"value", @"1223")
类似地,这里的group(1)=“ value”,group(2)=“ 1223”
我在正则表达式下进行了尝试,但没有得到预期的结果
stringwithComment = re.compile('NSLocalizedString\(@\s*"(.*?)"\s*,\s*comment:\s*\@"(.*?)"\s*\)',re.DOTALL )
答案 0 :(得分:1)
我认为您的模式过于复杂。如果您只是想捕获这两个字符串,可以使用:
x = '#define kvalue NSLocalizedString(@"value", comment:@"1223")'
re.findall("@\"(\w+)\"", x)
输出
['value', '1223']
答案 1 :(得分:1)
就像我说的那样,您的正则表达式很好,但似乎您没有捕获包含要捕获的数据的group1和group2。这是示例代码,可以满足您的需求。
import re
s = '#define kvalue NSLocalizedString(@"value", comment:@"1223")'
stringwithComment = re.compile('NSLocalizedString\(@\s*"(.*?)"\s*,\s*comment:\s*\@"(.*?)"\s*\)',re.DOTALL )
m = re.search(stringwithComment,s)
if m:
print(m.group(1))
print(m.group(2))
此打印,
value
1223
希望这会有所帮助,如果您进一步遇到任何问题,请告诉我。