【发布时间】:2022-01-23 09:41:44
【问题描述】:
我想从下面的示例字符串中提取:privacy 和:date。
我想要一个正则表达式约束来描述 :[^:\s]+ 块(例如 :privacy 或 :date)只能结束
由空格 \s 或换行符 \n 或字符串结尾 $ (因此我将能够在后面的步骤中制定一个逻辑分割这些块的规则)。
所以我只是将(?:$|\n|\s) 放在正则表达式的末尾,但我不适合我(下面的第三个正则表达式)。我仔细检查了它是否有效
我分别放了\s 或$(下面的第一个和第二个正则表达式),现在我不知道如何实现这个东西。感谢您的帮助。
'note::tmp hogehoge. :privacy :date'.match(/\s:[^:\s]+\s/g)
(1) [' :privacy ']
'note::tmp hogehoge. :privacy :date'.match(/\s:[^:\s]+$/g)
(1) [' :date']
'note::tmp hogehoge. :privacy :date'.match(/\s:[^:\s]+(?:$|\n|\s)/g)
(1) [' :privacy ']
【问题讨论】:
-
期待
(?=$|\n|\s) -
@ProGu 试过了,解决了!非常感谢。你能把你的答案写在下面吗?
-
@ProGu,这与
(?=$|\s)相同(因为换行符是空格)。也可以写成(?!\S)。 -
你是绝对正确的。我只是在代码中注释了一个问题并进行了最少的更改以使其正常工作。
标签: javascript regex