我在$text
内存储了以下内容:
<h1>Bonjour tout le monde (diverses langues) !</h1>
<h2>Anglais</h2>
Hello World!
<quote>Every first computer program starts out "Hello World!".</quote>
<h2>Espagnol</h2>
¡Hola mundo!
<image=http://example.com/IMG/jpg/person.jpg>
我想插入一些
<p>...</p>
标记未在标记中的段落。
我试过这个
$text =~ s/(?:<.*>)*(.*)/<p>$1<\/p>/g;
但替换并不能保留我的非捕获组。它产生了这个:
<p>
</p><p>
Hello World!
</p><p>
</p><p>
¡Hola mundo!
</p><p>
</p><p></p>
有什么想法吗?
感谢。
答案 0 :(得分:0)
也许尝试使用仅查找不以\n
开头或结尾的行的模式。我们还建议您添加<p></p>
,因为您不希望每行只包含换行符来获取$text =~ s/(^[^<\n]+.+|.+[^\/\n>]+$)/<p>$1<\/p>/gm;
代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MCell" forIndexPath:indexPath];
switch (indexPath.row) {
case 0:
cell.textLabel.text = @"My Policies";
cell.textLabel.textColor = [UIColor redColor];
***cell.textLabel.numberOfLines = 0;***
break;
case 1:
cell.textLabel.text = @"Payment Info";
cell.textLabel.textColor = [UIColor redColor];
break;
case 2:
cell.textLabel.text = @"Policy Notes";
cell.textLabel.textColor = [UIColor redColor];
break;
case 3:
cell.textLabel.text = @"Events";
cell.textLabel.textColor = [UIColor redColor];
break;
default:
cell.textLabel.text = @"Docs";
cell.textLabel.textColor = [UIColor redColor];
break;
}
return cell;
}
示例:
答案 1 :(得分:0)
s ///替换匹配的内容。
您可以使用
$text =~ s/((?:<.*>)*)(.*)/$1<p>$2<\/p>/g;
由前瞻或后视匹配的文本不被视为匹配的一部分。在遇到\K
之前,文本都没有匹配。
$text =~ s/(?:<.*>)*\K(.*)/<p>$1<\/p>/g;
第二种解决方案需要Perl 5.10 +。