Regex для NSLocalizedString для objectC с комментариями и без комментариев - PullRequest
0 голосов
/ 17 декабря 2018

У меня в файле два разных рисунка ниже линий.Я хочу, чтобы шаблон регулярных выражений создавал группы для строки в двойных кавычках в каждой строке.

#define kvalue                        NSLocalizedString(@"value", comment:@"1223")

здесь group (1) = "значение", group (2) = "1223"

#define kvalue                        NSLocalizedString(@"value", @"1223")

аналогично здесь также group (1) = "значение", group (2) = "1223"

я пробовал ниже регулярное выражение, но не получил ожидаемый результат

stringwithComment = re.compile('NSLocalizedString\(@\s*"(.*?)"\s*,\s*comment:\s*\@"(.*?)"\s*\)',re.DOTALL )

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Как я уже сказал, с вашим регулярным выражением все в порядке, но кажется, что вы не захватываете 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

Надеюсь, это поможет, и дайте мне знать, если у вас возникнут какие-либо проблемы.

0 голосов
/ 17 декабря 2018

Я думаю, что ваша модель усложняет это.Если вы просто хотите захватить эти две строки, вы можете сделать это с помощью:

x = '#define kvalue                        NSLocalizedString(@"value", comment:@"1223")'
re.findall("@\"(\w+)\"", x)

Вывод

['value', '1223']

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...