最近在做一个自动分割txt小说的东西,能够将一整个txt文件按照章节进行分割,然后分解成一个个小的.txt文件保存起来并且能够获取有多少章节和每章的章节名。 我最初的想法是: ① 先使用fopen打开文件,然后while循环使用fgets函数按txt文件中每一行读取 ②
最近在做一个自动分割txt小说的东西,能够将一整个txt文件按照章节进行分割,然后分解成一个个小的.txt文件保存起来并且能够获取有多少章节和每章的章节名。
我最初的想法是:
① 先使用fopen打开文件,然后while循环使用fgets函数按txt文件中每一行读取
② 边读取 边使用正则匹配出是否在这一句话中含有 “第**章”或者是“第**节”的字符串。如果有的话就把它存到一个数组中去。
③ 全部循环完成后使用count来计算数组的大小,然后使用foreach循环数组,将每一章的章节名进行字符串拼接(比如拼接成 '#章节名#' 这样的形式存到数据库中便于以后使用explode等函数进行章节名的分割)。
然后我就按照这个思路开始敲代码了。。但是很快便遇到了第一个问题
---- 如何使用正则表达式来匹配中文!!!
之前一直都是使用正则表达式来匹配一些英文啊字符啊什么的,我也一直以来都以为正则表达式可以直接匹配汉字的,于是就写了下面这样的代码
<span>if</span>(<span>preg_match</span>("/第[0-9一二两三四五六七八九十百千万]*[章节]/i",<span>$hangdata</span>,<span>$matches</span><span>)){ }</span>
我真的是把这个想的太容易了一点。。。结果就是什么也没有匹配出来。。
很多时候遇到问题第一想法就是不可能!!!然后就用把这行简单的代码看了一下,却没有发现有什么问题啊。。于是便开始百度,不得不说百度真的有很多有用的东西,很快便找到了网友共享的匹配中文字符的内容,要把汉字改成Unicode编码形式再去匹配。。。下面则是修改之后的代码
<span>if</span>(<span>preg_match</span>("/(\x{7b2c})(\s*)([\x{4e00}\x{4e8c}\x{4e09}\x{56db}\x{4e94}\x{516d}\x{4e03}\x{516b}\x{4e5d}\x{5341}\x{767e}\x{5343}0-9]+)(\s*)([\x{7ae0}\x{8282}]+)/u",<span>$hangdata</span>,<span>$matches</span><span>)){ }</span>
我想这次应该是没有问题了吧~正高兴着刷新了一下网页。。。我去 怎么又没出来东西。。是不是网友的贡献出错了?于是仔细检查了一边却还是没发现有什么问题,于是网上找个一个php在线中文手册看了一下,原来使用preg_match匹配中文要求被匹配的内容是UTF-8编码。。而从txt中读取出来的一般是GBK编码的
于是又在前面加了一行字符转换代码
<span>$hangdata</span>=mb_convert_encoding(<span>$hangdata</span>,"UTF-8","GBK");
现在一运行~OK 完成了
但是就在滚动页面的时候却发现同一个章节的名字却被匹配出来两次甚至更多。。这个错误很严重啊,之前人家作者写了一章的内容,用这个一分变成好多章了。。
于是就在匹配出每一章的章节名的时候和距离他最近的读取出来的章节名进行对比,看是不是一样。
于是就在最开始定义了一个空的字符串变量
每次循环的时候都与当前章节名进行对比 如果一样,就不再把当前的这一个章节名记录下来,如果不一样就记录下了并把章节名赋给这个变量。
虽然还有一点不尽人意的地方,但是主要的功能基本都已经实现了

一、引言随着移动设备的普及和计算能力的提升,图像分割技术成为了研究的热点。MobileSAM(MobileSegmentAnythingModel)是一种针对移动设备优化的图像分割模型,旨在在保持高质量分割结果的同时,降低计算复杂度和内存占用,以便在资源有限的移动设备上高效运行。本文将详细介绍MobileSAM的原理、优势和应用场景。二、MobileSAM模型的设计思路MobileSAM模型的设计思路主要包括以下几个方面:轻量级模型:为了适应移动设备的资源限制,MobileSAM模型采用了轻量级

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

IntelTXT是Intel公司推出的一种硬件辅助安全技术,它可以通过在CPU和BIOS间建立一个受保护的空间,来确保服务器在启动时的完整性和安全性。TXT的全称是TrustedExecutionTechnology,也就是可信执行技术。简单来说,TXT是一种安全技术,它可以提供硬件级别的保护,确保服务器在启动时没有被恶意程序或未经授权的软件修改。这一

chm通过使用在线转换工具、使用浏览器插件、使用命令行工具和使用第三方软件转换成txt。详细介绍:1、使用在线转换工具,只需上传CHM文件,选择TXT格式,然后下载转换后的TXT文件;2、使用浏览器插件,安装插件后,只需在浏览器中打开CHM文件,然后点击插件按钮,即可将CHM文件转换成TXT格式;3、使用命令行工具等等。

随着人工智能技术的不断发展,图像语义分割技术已经成为图像分析领域的热门研究方向。在图像语义分割中,我们将一张图像中的不同区域进行分割,并对每个区域进行分类,从而达到对这张图像的全面理解。Python是一种著名的编程语言,其强大的数据分析和数据可视化能力使其成为了人工智能技术研究领域的首选。本文将介绍如何在Python中使用图像语义分割技术。一、前置知识在深入

html转txt的方法有使用文本编辑器、使用在线转换工具和使用Python编程。详细介绍:1、打开HTML文件,可以使用任何文本编辑器,如记事本、Sublime Text等,选择整个HTML文件的内容,可以通过按Ctrl+A快捷键或通过鼠标拖动来选择,复制所选内容,可以通过按Ctrl+C快捷键或通过右键菜单中的复制选项来复制,打开一个新TXT文件,可以使用相同的文本编辑器等等。

Golang与FFmpeg:如何实现音频合成和分割,需要具体代码示例摘要:本文将介绍如何使用Golang和FFmpeg库来实现音频合成和分割。我们将用到一些具体的代码示例来帮助读者更好地理解。引言:随着音频处理技术的不断发展,音频合成和分割已经成为日常生活和工作中常见的功能需求。而Golang作为一种快速,高效且易于编写和维护的编程语言,加上FFmpeg作

有时候,我们需要把一个大文件发送给别人,但是限于传输通道的限制,比如邮箱附件大小的限制,或者网络状况不太好,需要将大文件分割成小文件,分多次发送,接收端再对这些小文件进行合并。今天就来分享一下用Python分割合并大文件的方法。思路及实现如果是文本文件,可以按行数分割。无论是文本文件还是二进制文件,都可以按指定大小进行分割。使用Python的文件读写功能就可以实现文件的分割与合并,设置每个文件的大小,然后读取指定大小的字节就写入一个新文件,接收端依次读取小文件,把读取到的字节按序写入一个文件,就


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Linux new version
SublimeText3 Linux latest version
