繁体   English   中英

使用正则表达式将单词分隔为带有分隔符的文本

[英]isolating words using regex expression to text with separators specific

我想隔离前。 3个字变成长文字

//more text
word word word (15:00 - - - 16:00 - - - 21:00)
//text ...

在这一点上,我想用正则表达式将时间隔离到括号中,但我要以这种格式返回15:00,16:00,21:00

我尝试用3个字符串'\\).*' replace with ' ' '.*\\(' replace with ' ''---' replace with ', '问题是,文本中可能还有其他括号,那么它将无法像下面这样工作:

(word) word word (19:00 - - - 20:00 - - - 21:00) asd asd asd (text text)

我仅限于替换操作,因为yahoo管道不是一种编程语言。

您只能提取类似于numbernumbercolumnnumbernumbernumber的字符串:

var result = str.match(/\b\d\d:\d\d\b/g);

结果将是具有所有匹配项的数组

演示

因此,您只能进行替换操作吗? 因为在这里提取会更有意义。

要求和变量不是很清楚。 显然(从评论中)您想保留的括号的前面和后面都有括号。 只有3次吗? 还是2或4?

此版本假定您想保留的括号中总是有3次,而前面的其他所有内容都将被捕获。

^(?:[^(]|\((?!(?:\d{1,2}:\d{2}[\s-]*){3}))*\(

正则表达式可视化

Debuggex演示

因此,这正则表达式说“行了比赛开始时选择了一切的时代,那么一切,是不是一个(或一(后面没有3时间符号,只有空白( \\s )和/或-它们之间”

之后,您可以执行以下操作:

'\).*' replace with ''
'[\s-]+' replace with ', '

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM