首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在标准块中添加断点以格式化文本。

在标准块中添加断点以格式化文本。
EN

Stack Overflow用户
提问于 2011-08-19 21:05:57
回答 2查看 75关注 0票数 1

我试图用粗体和斜体的正则表达式来格式化这个文本,这样看起来就像标准的带有断点的版本:

原件:

特别使用许可证#2011-0016605-小街道单身家庭住宅-公开听证和考虑在低于标准地段建造一套单一家庭住宅的请求;划为R-2-5/单人和两个家庭。申请人: Brian

有中断的标准版本:

代码语言:javascript
复制
SPECIAL USE PERMIT #2011-0016
605 LITTLE STREET
SINGLE FAMILY DWELLING
Public hearing and consideration of a request to construct a single family dwelling on a 
substandard lot; zoned R-2-5/Single and Two Family.  Applicant:  Brian Thomas
EN

回答 2

Stack Overflow用户

发布于 2011-08-20 01:32:26

首先,我建议您避免使用<br>,而是选择一些通用的标记,比如<div class="address">...</div>。如果您稍后决定更改显示或导出数据,这将是有用的。

提取第一个块是很容易的/^(.+\s\d{4}-\d+)\s+/,但是没有简单的方法在地址和标题("STREET“和"SINGLE")之间分割。我相信你必须建立一个启发式,但要小心测试它。收集一个很好的数据样本。然后为提取块的函数编写一些单元测试:

代码语言:javascript
复制
// with PHPunit.
// You should use @provider for testing on multiple input data
// And an Extract class with methods would be cleaner than functions.
function titleTest() {
    assertEquals(
        array("SPECIAL USE PERMIT #2011-0016", "605 LITTLE STREET..."),
        extractTitle("SPECIAL...")
    );
}
function addressTest() {
    list($title, $rest) = extractTitle("SPECIAL...");
    assertEquals(
        array("605 LITTLE STREET", "SINGLE..."),
        $rest

一旦测试失败,就可以构建函数extractAddress(),直到它在每个示例上成功为止。它可能会结合几种方式,例如标题值/单行行的列表./,地址‘end /STREET\驱动器./

票数 0
EN

Stack Overflow用户

发布于 2011-08-22 08:52:07

我想我有一个很简单的解决办法。原始文本可能有换行符,如\n \r,您需要在<br>中转换它们。如果我的理论是正确的,你应该能够通过这样做来格式化文本:

代码语言:javascript
复制
str_replace("\n", "<br>", $string);

试一试,让我知道它是否有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7127422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档