Пробелы, ActionScript и регулярные выражения - PullRequest
0 голосов
/ 04 февраля 2011

У меня есть текстовый файл, который нужно правильно проанализировать.Текстовый файл выглядит следующим образом:

[header]
   [header 2]
   [ header3 ] 

Я могу получить эти заголовки следующим образом:

var expression:RegExp = /[ [a-z0-9 ]+ ]/igxm;
var items:Array = text.match(expression);

Но я также хотел бы удалить пробел до и после скобок,таким образом, заголовки могут выравниваться по левому краю.Кроме того, для [header3] я хотел бы удалить пробел внутри скобок, до «h» и после «3».Что будет правильным регулярным выражением для чего-то этого?Заранее спасибо.

тон

Ответы [ 2 ]

1 голос
/ 05 февраля 2011

и немного по-другому:

var str:String = "[header]\n   [header 2]\n   [ header3 ] ";
var tmpArr:Array = str.match(/\[\s*\w+\s*\d*\s*\]/gm);
for (var i:int = 0; i < tmpArr.length; i++ ) {
    tmpArr[i] = tmpArr[i].replace(/(\[)\s+(\S.+\S)\s+(\])/g, '$1$2$3');
}
trace(tmpArr.join('\n'));
/*-outputs-
[header]
[header 2]
[header3]
---------*/
1 голос
/ 04 февраля 2011

Что-то вроде:

var expression:RegExp = /\[[ ]*([a-z0-9 ]*[a-z0-9]+)[ ]*\]/igxm;
var header:String = text.replace(expression, "$1");

Это предполагает, что у вас есть только одно совпадение на строку (вы выполняете одно и то же регулярное выражение для каждой строки). Если вы хотите выполнить всю строку, вы можете запустить то же регулярное выражение с помощью String.match (), а затем использовать приведенный выше фрагмент для извлечения группы.

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