首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >PHP正则表达式将行与带偶尔连字符的全大写匹配。

PHP正则表达式将行与带偶尔连字符的全大写匹配。
EN

Stack Overflow用户
提问于 2010-04-20 05:05:27
回答 2查看 710关注 0票数 1

我正在尝试转换一个现有的PHP正则表达式,以应用于略有不同的文档样式。

以下是文档的原始样式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
**FOODS - TYPE A** 
___________________________________ 
**PRODUCT** 
1) Mi Pueblito Queso Fresco Authentic Mexican Style Fresh Cheese; 
2) La Fe String Cheese 
**CODE** 
Sell by date going back to February 1, 2009 

成功运行的PHP匹配代码,只有在该行被星号包围时才返回"true“,并将"-”的两边分别存储为$m1和$m2。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 if ( preg_match('#^\*\*([^-]+)(?:-(.*))?\*\*$#', $line, $m) ) { 
    // only for **header - subheader** $m[2] is set. 
    if ( isset($m[2]) ) { 
      return array(TYPE_HEADER, array(trim($m[1]), trim($m[2]))); 
    } 
    else { 
      return array(TYPE_KEY, array($m[1])); 
    } 
  } 

因此,对于第1行:$m1 =“食品”和$m2 =“A类型”,将跳过第2行;第3行:$m1 =“产品”,等等。

的问题:如果标题没有星号,但仍然是全大写,并且至少有4个字符,那么如何重写上面的正则匹配?例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FOODS - TYPE A 
___________________________________ 
PRODUCT
1) Mi Pueblito Queso Fresco Authentic Mexican Style Fresh Cheese; 
2) La Fe String Cheese 
CODE
Sell by date going back to February 1, 2009 

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2010-04-20 05:35:20

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
^([A-Z]{4,}(?:[A-Z ]*[A-Z])?)(?:\s*-\s*([A-Z]{4,}(?:[A-Z ]*)?))?$

这件怎么样?它将匹配至少4个字符的大写单词和至少4个大写字母的可选子标题。

票数 1
EN

Stack Overflow用户

发布于 2010-04-20 05:32:47

所以,您需要知道的是,标题以四个大写的ASCII字母开头?这应该是可行的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
'#^([A-Z]{4}[^-]*)(?:-(.*))?$#'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2675266

复制
相关文章
python 删除文件中的空行
res = [x for x in res if x.split()] #将空行从 res 中去掉
全栈程序员站长
2022/09/02
3.5K0
sed 删除命令
删除/etc/passwd中的不能登录的用户(筛选条件:/sbin/nologin)
用户1217611
2022/05/06
1.3K0
sed 删除命令
Excel技巧:快速删除表中的空行
有时候,表中可能存在空行,如果我们需要删除表中的这些空行,如何快速操作呢?特别是包含大量数据的大表。为演示起见,下面的示例表数据较少。
fanjy
2023/02/24
2.8K0
Excel技巧:快速删除表中的空行
Linux sed 命令的使用
首先,就昨晚的发的消息道歉,虽然整蛊大家了,但是我还是挺开心的。 sed是一种流编辑器,配合正则表达式使用,sed处理文件之时,把当前处理的文保存在缓冲区,sed命令处理缓冲区的内容,将缓冲区的内容显示在到屏幕上,sed能够对一些重复操作的动作进行简化。 先来了解一下sed的命令格式 sed [options] 'command' filesname sed [options] -f scriptfilename filesname sed的命令 a \ 在当前行下面插入文本 i \ 在当前行
赵腰静
2018/03/09
3.2K0
Sed命令的基本使用
该文介绍了sed命令的基本使用,包括打印匹配行、替换匹配行、从文件中读取并写入到输出中等常用用法,以及使用修饰符进行更高级的文本处理。同时还介绍了sed命令的常用选项和例子,以及与其他文本处理工具的对比。
GavinZhou
2018/01/02
1.2K0
Excel去除空行的各种方法_批量删除所有空行
大家好,又见面了,我是你们的朋友全栈君。 本文转载至:https://baijiahao.baidu.com/s?id=1590204478648348952&wfr=spider&for=pc,
全栈程序员站长
2022/09/20
5.7K0
Excel去除空行的各种方法_批量删除所有空行
使用lsof命令恢复已删除文件(正在使用的文件)
此方法适用于正在使用的文件 ,且被删除后,可以通过lsof的方式进行恢复。 演示:
互联网-小阿宇
2022/11/21
1.8K0
使用lsof命令恢复已删除文件(正在使用的文件)
python 实现类似sed命令的文件内
#!/usr/bin/env python     #_*_coding:utf-8 _*_     #replace()方法把字符串中的 old(旧字符串)替换成new(新字符串),如果指定第三个参数max,则替换不超过 max 次。     #语法:str.replace(old, new[, max])     import sys,os     old_text, new_text, file_name = sys.argv[1], sys.argv[2], sys.argv[3]     f = 
py3study
2020/01/10
1.1K0
linux sed命令使用
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/details/77985202
bear_fish
2018/09/14
4.9K0
linux sed命令使用
linux sed命令使用
sed是一款常用的文本处理工具,其名称来自于“stream editor”(流编辑器)。sed能够从标准输入或文件中读取文本,对文本进行编辑和转换,然后将结果输出到标准输出或指定的文件中。在Linux系统中,sed命令是一种非常强大和灵活的工具,可以帮助用户进行多种文本操作,如文本替换、删除、插入、打印等等。
堕落飞鸟
2023/03/27
3.8K0
Python去除文本文件中的空行
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
村雨遥
2019/09/09
4.2K0
Python 去除文本文件中的空行
功能 读取存在空行的文件,删除其中的空行,并将其保存到新的文件中; 代码 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019/3/18 21:41 # @Author : cunyu # @Site : cunyu1943.github.io # @File : deleteBlankLines.py # @Software: PyCharm """ 读取存在空行的文件,删除其中的空行,并将其保存到新的文件中 """
村雨遥
2022/06/15
1.6K0
Linux中sed工具的使用
sed 是一种流编辑器,它是文本处理中非常重要的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。
谢公子
2022/01/19
2.3K0
Linux中sed工具的使用
如何使用 sed 替换文件中的字符串?
在 Linux 系统中,sed 是一个非常有用的文本处理工具,它可以用于在文件中进行字符串替换操作。sed 是流编辑器(stream editor)的缩写,它可以对文本进行逐行处理,包括查找和替换特定的字符串。本文将详细介绍如何使用 sed 命令在文件中进行字符串替换操作。
网络技术联盟站
2023/06/09
5.5K0
如何使用 sed 替换文件中的字符串?
Linux的sed命令
Linux sed 命令是利用脚本来处理文本文件。sed 可依照脚本的指令来处理、编辑文本文件。Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
狼啸风云
2019/11/05
4.1K0
linux中sed命令总结
原文:https://wangchujiang.com/linux-command/c/sed.html
入门笔记
2022/06/02
3.3K0
linux下的删除文件命令,Linux下删除文件命令「建议收藏」
在linux中删除文件与文件夹我们可以直接使用rm就可以删除了,彻底删除文件或文件夹我们可以使用shred命令来完成,接下来是小编为大家收集的Linux下删除文件命令,希望能帮到大家。
全栈程序员站长
2022/09/17
49.8K0
linux下的删除文件命令,Linux下删除文件命令「建议收藏」
Linux批量替换某种类型文件中的字符串-sed和grep命令使用
今天在修改rpm打包的spec配置文件时,遇到一个问题就是:需要将100个左右源代码中的spec配置文件中的Release一行中的发布版本号使用宏变量%{_release}进行替换。
ccf19881030
2019/04/23
5.8K0
点击加载更多

相似问题

使用sed删除文件中的空行

20

使用一个sed命令,使用sed +删除"#“和空行

63

使用sed删除空行

1716

如何使用SED删除多个空行?

60

无法使用sed regex删除空行

40
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文