Regex用于在特定条件下为新句子添加空格或句号
Regex for adding a space or period for new sentence under certain conditions
我正在尝试创建一个正则表达式(可在Javascript/Node.js中实现):
- 只要字母或字符(
A-Z
、a-z
、!@#$%^&*()
等)不是数字)后面跟一个句点,然后跟一个大写字母(中间没有空格)和/或 - 只要空白后面跟着一个大写字母(
A-Z
、a-z
,但不是数字或字符),就加一个句点(.
),除非有多个大写字母,例如在首字母缩写中,和/或 - 只要字符串中的任何字符、字母或数字后面没有任何其他内容,就加一个句点(
.
)
例如,在第一种情况下:
This is a sample sentence.This is a sample new sentence.
应该变成:
This is a sample sentence. This is a sample new sentence.
在第二种情况下,例如:
This is a sample sentence This is a sample new sentence.
应该变成:
This is a sample sentence. This is a sample new sentence.
但是,在第二种情况下:
This is a sample sentence with TEST This is a sample new sentence.
应该变成:
This is a sample sentence with TEST. This is a sample new sentence.
在第三种情况下,例如:
This is a sample sentence. This is a sample new sentence
应该变成:
This is a sample sentence. This is a sample new sentence.
请注意,我希望搜索和更改的这些示例在句点和间距的位置上存在差异。
我已经搜索了一些变体,但没有找到符合上面列出的确切标准的我现在只担心句点和空格,而不是其他类型的标点符号,除非有一个更通用的解决方案可以应用于不止这些情况我想用这个开始清理一些日志文件和其他区域中的语法。
如果这读起来太复杂,我提前道歉。请留下评论,如果需要,我会很乐意澄清。
虽然我应该包括一个标准的警告,不要使用编程方法来处理自然语言(这对计算机来说非常复杂和难以理解),但下面显示了一系列正则表达式(当在字符串上按顺序运行时)。
对于第一种情况:
s/([^0-9.])'.([^0-9])/'1. '2/g
对于第二种情况:
s/([^.]) ([A-Z][a-z])/'1. '2/g
对于第三种情况:
s/([^.])$/'1./g
稍微分解一下:
s/A/B/g
的意思是"用B替换文本中每次出现的正则表达式A"。
(A)
的意思是"捕获A,以便我们以后可以再次使用它"(这被称为捕获组)。
[^0-9.]
表示"匹配所有非数字字符或句点字符的字符"。这是一个否定的字符类。
'.
与文字句点(".")字符匹配。
$
是线锚的末端,它与字符串的末端相匹配。
'1
和'2
分别指第一和第二捕获组。
因此,基本上,这些正则表达式所做的是捕获要修改的区域周围的内容,然后用内容加修改替换该内容加区域。
对于第一种情况,使用以下内容匹配并替换为space
:
(?='.[^'d's])
对于第2种和第3种情况,使用以下regex匹配并替换为.
(?<!'.)$|(?='s[A-Z])
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在映射数组中添加换行符
- 正在将数据主题添加到所有项目
- ZeroClipboard-在复制之前添加到值
- 我可以在json对象中添加一个函数吗
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 正在SharePoint 2013母版页中添加JQuery移动文件
- 我如何找到一个句子中的所有空格并替换忽略它们
- 如何添加浮动和非浮动,其他
- 添加文字和评论功能更新Div
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 在函数中添加数组元素的数值
- 使用jQuery检查提交时添加到句子中的单词
- 需要使用javascript获取输入文本,然后将其添加到句子中
- 如何使用Javascript在给定的句子中找到大写单词并在其前面添加一个字符
- jQuery:如何添加<br/>在不同的字符串中换行以分隔2中的句子
- 从带有Uniqqe Id的段落数组中添加句子's
- Regex用于在特定条件下为新句子添加空格或句号
- 如何为段落中的每个句子添加递增ID