使用RegExp获取一系列单词,这些单词前后可能有空格,也可能没有空格
Using RegExp to get a series of words which may or may not have spaces before and after
我正在尝试匹配冒号(:)字符后的一系列文本,同时忽略前后的空白字符。
示例
someWord: a series of text
-or-
someWord: a series of text
我想得到"一系列文本"的结果,忽略冒号后面的任何空白,但在文本短语中包含空白。
我尝试为此开发regexp失败了,希望SO社区能提供帮助!
这是我糟糕的正则表达式(我提前为您即将看到的内容道歉):
:[^ ]('w*)+?(?='b)
> "someWord: a series of text".match(/:'s*(.*)$/)
[": a series of text", "a series of text"]
要获得文本,可以使用引用捕获组的第一个索引,对于字符串末尾的空格,可以使用trim():
> "someWord: a series of text ".match(/:'s*(.*)$/)[1].trim()
"a series of text"
如果您只匹配其中一个(字符串中没有几个;请参阅我的问题),那么我认为您正在寻找
:'s*(.*?)'s*$
:
与冒号匹配's*
匹配零个或多个空白字符(贪婪)(...)
是目标文本的捕获组.*?
是对任何一系列字符的非贪婪捕获's*$
是在末尾对空白的贪婪捕获
var s1 = "someWord: a series of text ";
var match = /:'s*(.*?)'s*$/.exec(s1);
log("Input: '" + s1 + "'");
log("Result: '" + match[1] + "'");
function log(msg) {
var p = document.createElement('pre');
p.appendChild(
document.createTextNode(msg)
);
document.body.appendChild(p);
}
对于这种特殊情况,可以使用split
:
document.write("someWord: a series of text".split(':')[1].trim());
document.write('<br>'); // just to insert a new line for printing
document.write("someWord: a series of text".split(':')[1].trim());
相关文章:
- 边栏按钮和infoWindow是否可能有不同的内容
- 有没有可能有多个有棱角和咕哝的跑步块
- 使用RegExp获取一系列单词,这些单词前后可能有空格,也可能没有空格
- React Native AlertOS api中可能有多个文本字段
- 可能有一个javascript和php的配置文件
- 这个Javascript变量怎么可能有价值
- JavaScript源代码中的换行符或空格/制表符有什么不同吗?(甚至在评论中!?
- 这是关闭吗?这可能有什么意义
- 代码只是没有执行,可能有语法问题,或者我可能完全错了
- 一个有内容的iFrame怎么可能有一个未定义的contentDocument对象
- javascript forEach循环可能有奇怪的输出
- 正则表达式:允许使用字母、数字和空格(至少有一个字母而非数字)
- 变量数组中的对象是否可能有2个值
- JavaScript初学者:在函数中编码单独的空格字符有什么功能区别
- MongoDB内部的一个查询中可能有多个条件
- EXTJS文本区域中可能有粗体文本
- 在Javascript中,从localStorage检索时是否可能有一个等待动画
- 可能有多个内容脚本为不同的功能
- 是否有可能有完整的CRUD功能在剑道网格与本地数据
- Javascript:有没有可能有一个函数在Object/String..创建