Регулярное выражение Java value.split (“\\\”.), “точка наклонной черты влево” делится на символ?

UITableViewDelegate будет звонить

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

, когда строка будет выбрана. От этого можно легко определить строку при помощи indexPath.section и indexPath.row

35
задан Alan Moore 26 June 2016 в 06:50
поделиться

2 ответа

Я предполагаю, что вам не хватает символов обратной косой черты ('\') как escape-символы в строковых литералах Java. Поэтому, если вы хотите использовать экранирование '\' в регулярном выражении, написанном как строка Java, вам нужно экранировать его; Например,

Pattern.compile("\.");   // Java syntax error

// A regex that matches a (any) character
Pattern.compile(".");  

// A regex that matches a literal '.' character
Pattern.compile("\\.");  

// A regex that matches a literal '\' followed by one character
Pattern.compile("\\\\.");

Метод String.split (String separatorRegex) разбивает строку на подстроки, разделенные подстроками, соответствующими регулярному выражению. Таким образом, str.split ("\\.") разделит str на подстроки, разделенные одним литералом '.' персонаж.

70
ответ дан 27 November 2019 в 06:51
поделиться

Регулярное выражение ". " будет соответствовать любому символу, как вы указываете. Однако экранированная точка "\". будет соответствовать буквальным символам точки. Таким образом, 192.168.1.1 разделен на "\." приведет к {"192", "168", "1", "1"}.

Ваша формулировка не совсем ясна, но я думаю, что вы спрашиваете именно об этом.

7
ответ дан 27 November 2019 в 06:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: