Регулярное выражение для атрибута / значения, не работающего в Java - PullRequest
0 голосов
/ 28 мая 2010

Я бы хотел избежать текстов вроде этого: height = "49" с регулярным выражением.

Я пытался .replaceAll("\s*="*"","");

(replaceAll используется в качестве метода в классе Java), но затмение не позволило мне сделать это. Любое другое предложение ??

Ответы [ 3 ]

4 голосов
/ 28 мая 2010

Вам нужно экранировать строковый литерал \ в Java до \\, а вам нужно экранировать от " до \".

.replaceAll("\\s*=\".*?\"","")

Смотри также

Экранирующие последовательности символов и строк допускают представление некоторых неграфических символов, а также символов одинарных кавычек, двойных кавычек и обратной косой черты в литералах символов (§3.10.4) и строковых литералах (§3.10.5).

EscapeSequence:
        \ b                     /* \u0008: backspace BS                   */
        \ t                     /* \u0009: horizontal tab HT              */
        \ n                     /* \u000a: linefeed LF                    */
        \ f                     /* \u000c: form feed FF                   */
        \ r                     /* \u000d: carriage return CR             */
        \ "                     /* \u0022: double quote "                 */
        \ '                     /* \u0027: single quote '                 */
        \ \                     /* \u005c: backslash \                    */
2 голосов
/ 28 мая 2010

Вы должны избежать обратной косой черты и двойных кавычек внутри строки. Кроме того, вы, вероятно, хотели писать .* везде, где написали * (хотя это, вероятно, также не дало бы желаемых результатов, поэтому вам следует использовать что-то более конкретное, чем .).

0 голосов
/ 28 мая 2010

Это требует гораздо большего уточнения, но ваш конкретный пример можно найти с помощью

String.replaceAll("[A-Za-z]+=\"\d+\"","")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...