我尝试获取字符串的模式匹配,如下所示,将每一行转换为列表项<li>
:
-Give on result
&Second new text
-The third text
Another paragraph without list.
-New list here
使用自然语言:匹配以-
开头并以新行符号\n
我尝试了以下可行的模式:
/^([-|-]\w+\s*.*)?\n*$/gum
当然我们可以在没有方括号^(-\w+\s*.*)?\n*$
的情况下编写它,但是对于调试我按照描述使用它。
在上面的示例中,当我将第-
替换为&
为^([-|&]\w+\s*.*)?\n*$
时,它也正常工作,并且它会捕捉到spple字符串的第二行。但是,我无法使其匹配-
前缀为空格或带有空格的后缀。
我将示例字符串更改为:
- Give on result
&Second new text
-The third text
Another paragraph without list.
-New list here
我尝试了以下模式:
/^([-|\- |&| -]\w+\s*.*)?\n*$/gum
然而,它未能将任何后缀或带前缀的-
与空格匹配。
Here are原始工作模式的现场演示:
答案 0 :(得分:1)
根据我的理解,你想要的是一条以元素e(e为&amp;或 - )开头的行,其中元素以空格为前缀/后缀。
^\s*[&-]\s*(.*)$
如果您不想要多线,只需不要使用m修饰符。
答案 1 :(得分:0)
^(\h*(?:-|&)\h*\w+\s*.*)\n*$
你可以试试这个。|
里面[]
没有特别的意义。见演示。
https://regex101.com/r/nS2lT4/3
字符串可以以空格开头,然后它应该有-
或&
,前面可能有空格。然后它应该至少有一个字母数字字符,前面可能有空格。然后它可以有任何东西。最后,它会耗尽它消耗的所有新行,或者如果它不能消耗掉它。