latex段落悬挂缩进_使用正则表达式在Java中悬挂缩进段落

latex段落悬挂缩进

这篇文章显示了如何使用正则表达式将缩进的长段落挂起。 该方法将考虑单词边界,这意味着它不会破坏缩进单词。 为了说明此问题,请考虑以下示例:

近年来,人们越来越努力从自然语言文本中提取实体之间的关系。 在这篇论文中,我将集中于认识科学文章中报道的实体之间的生物医学关系的各个方面。

输出应为:

There has been an increasing effort in recent years to extract relations betweenentities from natural language text. In this dissertation, I will focus onvarious aspects of recognizing biomedical relations between entities reportedin scientific articles.

我的方法

我们需要一个正则表达式将段落分成固定长度的字符串序列。 假设文本宽度为80,而缩进量为3,则第一个字符串的长度为80。其余所有字符的长度为77。

该算法的主要过程如下

  1. 获取前80个字符
  2. 对于其余的字符串,将拆分点替换为三个空格

为了找到分裂点,我们使用正则表达式(.{1,77})\s+ 。 此正则表达式搜索一个长度小于等于77并且最后一个字符不是空格的子字符串。 找到它之后,我们将组( $1 )替换$1\n 。 因此,java代码应如下所示

String regex = "(.{1,77})\\s+";
String replacement = "   $1\n";
text.replaceAll(regex, replacement);

除了最后一行,此正则表达式工作完美。 如果给定的文本不以空格结尾,例如\n ,则最后一行将无法正确处理。 将最后一行视为

in scientific articles.

在最后一次搜索中,正则表达式无法在行尾找到空白,因此它将在“科学”和“文章”之间定位空格。 结果,我们将得到

...in scientific
articles.

为了克服这个问题,我在段落末尾添加了一个假的“ \ n”。 格式化后,我将其删除。

代码的其他部分都很简单。 在这里,我附上我的源代码。 我使用Apache公共库来生成缩进空间并声明缩进的有效性。 有关最新代码,您可以查看我的Github

/*** Format a paragraph to that has all lines but the first indented.* * @param text text to be formatted* @param hangIndent hanging indentation. hangIndent >= 0* @param width the width of formatted paragraph* @param considerSpace true if only split at white spaces.* @return*/public static String hangIndent(String text, int hangIndent, int width,boolean considerSpace) {Validate.isTrue(hangIndent >= 0,"hangIndent should not be negative: %d",hangIndent);Validate.isTrue(width >= 0, "text width should not be negative: %d",width);Validate.isTrue(hangIndent < width,"hangIndent should not be less than width: "+ "hangIndent=%d, width=%d",hangIndent,width);StringBuilder sb = new StringBuilder(text.substring(0, hangIndent));// Needed to handle last line correctly.// Will be trimmed at lasttext = text.substring(hangIndent) + "\n";// hang indentString spaces = org.apache.commons.lang3.StringUtils.repeat(' ', hangIndent);String replacement = spaces + "$1\n";String regex = "(.{1," + (width - hangIndent) + "})";if (considerSpace) {regex += "\\s+";}text = text.replaceAll(regex, replacement);// remove first spaces and last "\n"text = text.substring(hangIndent, text.length() - 1);return sb.append(text).toString();}

相关工作

还有许多其他方法可以实现悬挂缩进功能。 最简单的方法似乎是先将段落分成单词,然后使用计数器来计算当前行的长度。 只要超过最大长度,我们就会添加换行符和缩进。

我不确定哪种方法更有效,但是绝对非常规表达方法更容易实现和维护。 所以我想这篇文章的重点是学习一些“ NEW ”。

参考: 使用regex可以从PGuru博客上的JCG合作伙伴 Peng Yifan挂起的 Java中的段落缩进 。

翻译自: https://www.javacodegeeks.com/2014/01/using-regex-to-hanging-indent-a-paragraph-in-java.html

latex段落悬挂缩进

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/343853.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【渝粤教育】电大中专会计电算化 (2)作业 题库

1下列有关会计电算化狭义概念的说法正确的是()。 A以会计理论为主体的电子信息技术在会计工作中的应用 B与实现电算化有关的所有工作 C以电子计算机为主体的电子信息技术在会计工作中的应用 D与实现电算化有关的主要工作 错误 正确答案&#xff1a;左边查询 学生答案&#xff1…

光纤模块与光纤收发器的区别

随着科技的发展&#xff0c;城市信息化速度的加快&#xff0c;对于通信技术的要求越来越高&#xff0c;光纤以其传输速度快、距离远、安全稳定、抗干扰、扩容便捷等优点越来越成为人们在通讯敷设时的首选。我们经常看到在建筑智能化项目中的远距离数据传输需求&#xff0c;基本…

html中输出PHP的下拉列表,html中关于下拉列表select的图文代码详解

HTML中的下拉列表&#xff1a;Html代码VolvoSaabOpelAudi其中select是显示一个下拉列表(drop down list)出来&#xff0c;option是下拉列表中的项目(item)&#xff0c;而option的文本内容(text content)是下拉列表项目中显示到页面上的值&#xff0c;value是真正需要提交到服务…

【渝粤教育】电大中专学前儿童语言教育 (2)作业 题库

作业视频教务托管&#xff0c;壹叁路路贰陆陆壹〇肆〇 认为儿童天生就有学习语言能力且体现在一种语言获得装置&#xff08;LAD&#xff09;中的教育家是( )。 A.皮亚杰 B.乔姆斯基 C.伍顿 D.斯金纳 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;未作答 2.语言是( )…

光纤收发器tx和rx的区别?

光纤收发器&#xff0c;是一种将短距离的双绞线电信号和长距离的光信号进行互换的以太网传输媒体转换单元&#xff0c;在很多地方也被称之为光电转换器&#xff08;Fiber Converter&#xff09;。产品一般应用在以太网电缆无法覆盖、必须使用光纤来延长传输距离的实际网络环境中…

【渝粤教育】电大中专幼儿园课程论 (10)作业 题库

作业视频教务托管&#xff0c;壹叁路路贰陆陆壹〇肆〇 下列哪种不是具有代表性的课程定义( ) A.课程即知识 B.课程即目标 C.课程即科目 D.课程即经验 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;未作答 2.幼儿园课程目标要素不包括( ) A.内容 B.目标 C.特征 D.评价…

php缓存实例,一个PHP缓存类实例

一个PHP缓存类实例发布于 2014-08-05 21:44:28 | 104 次阅读 | 评论: 0 | 来源: 网友投递PHP开源脚本语言PHP(外文名: Hypertext Preprocessor&#xff0c;中文名&#xff1a;“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点&#xff0c;入门门…

[渝粤教育] 中国地质大学 金融保险业会计 复习题

《金融保险会计》模拟题 单选题 1.下列不符合外汇分账制基本要求的有(). A.对各种外币的收付凡有人民币牌价的平时都按原币填制凭证登记账簿编制报表 B.对各种外币的收付凡有人民币牌价的平时都按人民币填制凭证登记账簿编制报表 C.设置”外汇买卖”科目 D.各种外币分别设置一…

光纤收发器常见指示灯的意义

光纤收发器是一种常见的网络设备&#xff0c;主要用于延长网络传输距离。它有很多指示灯&#xff0c;其中LAN指示灯、POWER指示灯、POTS指示灯、LOS指示灯、PON指示灯比较常见&#xff0c;不同指示灯代表着不同的意义&#xff0c;我们可以通过指示灯的闪烁情况和开关情况&#…

php mysql_query预处理,php+mysqli使用预处理技术进行数据库查询的方法

本文实例讲述了phpmysqli使用预处理技术进行数据库查询的方法。分享给大家供大家参考。具体如下&#xff1a;代码有些难度&#xff0c;需要基础知识比较扎实才能好理解&#xff0c;代码先放上来&#xff1a;这里实现查询所有 id>5 的 id&#xff0c;title&#xff0c;conten…

[渝粤教育] 中国地质大学 高级会计学 复习题

《高级会计学》模拟题 一单选题 1.2007年1月1日甲公司以一台固定资产和银行存款400万元向乙公司投资()占乙公司注册资本的60%该固定资产的账面原价为8000万元已计提累计折旧500万元已计提固定资产减值准备200万元公允价值为7600万元.同日乙公司可辨认净资产公允价值为13000万元…

实现函数克隆_哪个更好的选择:克隆或复制构造函数?

实现函数克隆这就是我开始撰写本文的方式。 我已经读过很多次这样的声明&#xff1a; “当对象引用可变的最终字段时&#xff0c;克隆变得很困难。” 每次我在Google上搜索它时&#xff0c;都要了解它的确切含义&#xff0c;并且在此过程中也忘了它。 因此以为我会将其写在博客…

[渝粤教育] 西南科技大学 服务管理 在线考试复习资料

服务管理——在线考试复习资料 一、单选题 1.不属于服务组织排队结构的是( ) A.随机排队 B.单一排队 C.多条排队 D.领号排队 2.服务接触的三元组合没有下列哪项是( ) A.服务组织 B.与客户接触服务人员 C.顾客 D.服务流程 3.下列哪种服务属于复杂性高而且标准化程度高的( ) A.…

光纤收发器元件级和整机测试内容介绍

对光纤收发器的测试可分为元件级和整机测试&#xff0c;元件级测试主要包括对光纤收发器内部关键器件在电工作的电性能测试。整机测试主要指将光纤收发器接入到以太局域网中&#xff0c;测试整机的功能、性能和特性。那么&#xff0c;具体要怎样测试光纤收发器才是一次完整的测…

java中使用okhttpsoap,Android okHttp网络请求之Retrofit+Okhttp+RxJava组合

Retrofit介绍&#xff1a;Retrofit和okHttp师出同门&#xff0c;也是Square的开源库&#xff0c;它是一个类型安全的网络请求库&#xff0c;Retrofit简化了网络请求流程&#xff0c;基于OkHtttp做了封装&#xff0c;解耦的更彻底:比方说通过注解来配置请求参数&#xff0c;通过…

Java中的证书透明度验证

因此&#xff0c;我有一个幼稚的想法&#xff0c;即除了证书有效性检查&#xff08;在Java中&#xff09;之外&#xff0c;将证书透明性验证作为每个请求的一部分也很容易。 牺牲了整个周末的一半时间&#xff0c;我可以证明这并不是一件小事。 但是&#xff0c; 证书透明性是…

[渝粤教育] 西南科技大学 电子商务原理及应用 在线考试复习资料

电子商务原理及应用——在线考试复习资料 一、单选题 1.( )接受商家的送货要求,将商品送到消费者手中。 A.邮局 B.快递公司 C.送货公司 D.物流中心 2.卓越属于( )类型的B2C电子商务企业: A.经营着离线商店的零售商 B.没有离线商店的虚拟零售企业 C.商品制造商 D.网络交易服务公…

如何判断光纤收发器是否有问题?

一般情况下&#xff0c;光纤收发器或光模块的发光功率如下&#xff1a;多模在10db--18db之间&#xff1b;单模20公里在-8db--15db之间&#xff1b;而单模60公里则在-5db--12db之间。但如是光纤收发器的发光功率出现在-30db--45db之间&#xff0c;那么&#xff0c;很有可能这个光…

[渝粤教育] 西南科技大学 经济数学1 在线考试复习资料

经济数学1——在线考试复习资料 一、单选题 1.求曲线在点处的切线方程( )。 A. B. C. D. 2.求函数的导数( )。 A. B. C. D. 3.设(都是常数),则( )。 A.0 B. C. D. 4.如果函数在区间上的导数( ),那么在区间上是一个常数( )。 A.恒为常数 B.可能为常数 C.恒为零 5.设,则( )。…

matlab 列表 剪切,利用Matlab进行文件批量复制、剪切和修改文件名

文件批量复制、剪切和修改文件名电脑环境文件批量复制文件批量剪切批量修改文件名批量修改文件名和复制(剪切)电脑环境MATLAB&#xff1a;2018aWindows&#xff1a;win10文件批量复制close all;clear all;clc;%目的文件目录DST_PATH_t C:\Users\fatflower\Desktop\2018BBC精听…