0

我正在使用 Codemirror 构建一个具有一些不错功能的文本编辑器,例如语法突出显示、在简单模式下使用语言模式,以及尝试编写几个正则表达式来匹配段落的第一个和最后一个单词。例如,在:

One
is the first one
of all the numbers

Two is
the second

第一个正则表达式(段落中的第一个单词)应该匹配Oneand Two,第二个正则表达式(段落中的最后一个单词)应该匹配numbersand second

我一直在尝试不同的表达方式,但最终找不到合适的表达方式。这是我得到的最接近的,但显然仍然不正确:

/[^\r\n]+[a-zA-Z]\s/

谁能指出我正确的方向?提前致谢。

4

2 回答 2

1

使用 Notepad++ 和 rubular.com 测试

找什么: ^([A-Z]\w+)(\s\w+)?((\r?\n|\r)([a-z]+\s)+)+(\w+)$

用。。。来代替: \1\n\6

输入

One
is the first one
of all the numbers

Two is
the second

Three is
the third

Four is
the fourth
of all the numbers

输出

One
numbers

Two
second

Three
third

Four
numbers

红色的

在此处输入图像描述

于 2014-10-19T10:24:11.603 回答
1

我知道这个问题已经开放了一段时间,但想分享一下 CodeMirror 正则表达式,通常的 '^' 不能用于行/字符串匹配的开始。但是, { regex: ..., sol: true } 工作正常。例如,在 defineSimpleMode() 中,“sol”代表“行首”

于 2017-11-21T04:52:33.777 回答