如何在Codemirror中使用RegEx来匹配段落的第一个和最后一个单词?

时间:2014-10-19 09:52:29

标签: javascript regex codemirror codemirror-modes

我正在使用Codemirror构建一个texteditor,其中包含一些不错的功能,例如语法高亮,使用simple mode中的语言模式,并尝试编写几个正则表达式以匹配段落的第一个和最后一个单词。例如,在:

One
is the first one
of all the numbers

Two is
the second

第一个正则表达式(段落中的第一个单词)应与OneTwo匹配,第二个正则(段落中的最后一个单词)应与numberssecond匹配。

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

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

有人能指出我正确的方向吗? 提前谢谢。

2 个答案:

答案 0 :(得分: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

<强> Rubular

enter image description here

答案 1 :(得分:0)

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