Как извлечь определенный текст с NSRegularExpression? - PullRequest
1 голос
/ 12 марта 2011

Я пытаюсь извлечь (80.4) из следующего кода:

<div id="row" style="width:80.4px">

Как будет выглядеть выражение для извлечения этого текста?Спасибо.

Ответы [ 2 ]

1 голос
/ 12 марта 2011

Регулярное выражение является достаточно тяжелым для этой конкретной ситуации. Я бы просто сделал это:

NSString *originalString; //which will contain "<div id="row" style="width:80.4px">", however you want to get it there
NSString *afterColon = [[originalString componentsSeparatedByString:@":"] objectAtIndex:1];
float theValue = [afterColon floatValue];
1 голос
/ 12 марта 2011

Здесь есть две возможности, но ответ будет различаться в зависимости от следующих факторов:

1) с каким другим содержанием в тексте вы не хотите сопоставлять,

2)и какие варианты вы позволите сопоставить (например, добавив пробелы или новые строки в тесте, который вы хотите сопоставить, или поменяйте местами порядок совпадения частей текста)

Это соответствует только "width: 80.4px "часть вашей заданной строки (с учетом дополнительного пробела):

width\s*:\s*(\d+.\d+)\s*px

И это соответствует всей заданной вами строке (также с учетом дополнительного пробела):

<div\s+id\s*=\s*"row"\s+style\s*=\s*"width:\s*(\d+.\d+)\s*px">

Таким образом, в этих регулярных выражениях 80.4 будут захвачены в группе захвата $ 1.

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