【问题标题】:Regex: Finding all line breaks without an " as previous character正则表达式:查找没有“作为前一个字符的所有换行符
【发布时间】:2011-07-01 11:46:15
【问题描述】:

我有一个包含一堆数据的文件,如下所示:

"sc14b61ecf5ef162","sc14b61b07ba1690","1264806000","1264806000","780","1080","Navn arrangement:
Dørene åpner:
Arr.start:
Arr:slutt:
Dørene stenger:
HA (navn):
HA (tlf):
Type arrangement: (her: om konsert, gjerne sjanger)
Forvetet antall gjester:"
"sc14b61f9e35f569","sc14b61bf07647db","1265583600","1265583600","1020","1260","Nord/Sør
Foredrag
Ønsker skjenking"

这会重复很多次(使用不同的数据)。我希望它看起来像这样:

"sc14b61ecf5ef162","sc14b61b07ba1690","1264806000","1264806000","780","1080","Navn arrangement:Dørene åpner:Arr.start:Arr:slutt:Dørene stenger:HA (navn):HA (tlf):Type arrangement: (her: om konsert, gjerne sjanger)Forvetet antall gjester:"
"sc14b61f9e35f569","sc14b61bf07647db","1265583600","1265583600","1020","1260","Nord/Sør Foredrag Ønsker skjenking"

我认为我需要某种方法来删除所有前面没有 " 的换行符,但我的正则表达式很弱。

我正在使用 Textwrangler(OS X 的文本编辑器)。

【问题讨论】:

    标签: regex line-breaks textwrangler


    【解决方案1】:

    这称为negative look behind。这应该可以解决问题。

    (?<!")\n
    

    每个 cmets 中的 @ax,在 Mac 上,您可能需要将 \n 更改为 \r,如下所示:

    (?<!")\r
    

    如果这仍然不起作用,有时您可能需要将两者结合起来:

    (?<!")\r\n
    

    其中一个应该可以满足您的需求。

    【讨论】:

    • 在 Mac 上,这将是 (?&lt;!")\r
    • ive 从来没有遇到过 \n 的问题,但你是对的。一些程序或操作系统也可以\r\n
    • 对于 os x 上的 textwrangler,它很可能只有 \r:看这个截图:barebones.com/products/textwrangler/textwranglerpower.html
    • 哦,好吧:OS X 的换行表示是 LF,\n: en.wikipedia.org/wiki/Newline#Representations
    • 我知道在 Windows 上,我已经看到应用程序采用这些方式中的任何一种。我以为 Mac 会很相似,但我从来没有研究过足够的东西来测试。
    猜你喜欢
    • 2011-02-11
    • 2013-12-18
    • 1970-01-01
    • 2023-03-18
    • 2013-10-19
    • 2014-09-17
    • 1970-01-01
    • 1970-01-01
    • 2023-02-10
    相关资源
    最近更新 更多