如何解决用于匹配斜体文本格式的预定义规则的正则表达式
我正在尝试编写一个正则表达式来匹配用户输入,该输入将使用 Markdown 转换为斜体格式。
在字符串中,我需要找到以下模式:星号后跟任何类型的非空白字符,并以任何类型的非空白字符后跟一个星号结束。
所以基本上:substring *substring substring substring* substring
应该吐出 *substring substring substring*
。
到目前为止,我只想到了 /\*(?:(?!\*).)+\*/
,它匹配两个星号之间的所有内容,但它没有考虑星号之间的子字符串是以空格开头还是以空格结尾——这是不应该的。
感谢您的意见! :)
解决方法
使用
\*(?![*\s])(?:[^*]*[^*\s])?\*
说明
--------------------------------------------------------------------------------
\* '*'
--------------------------------------------------------------------------------
(?! look ahead to see if there is not:
--------------------------------------------------------------------------------
[*\s] any character of: '*',whitespace (\n,\r,\t,\f,and " ")
--------------------------------------------------------------------------------
) end of look-ahead
--------------------------------------------------------------------------------
(?: group,but do not capture (optional
(matching the most amount possible)):
--------------------------------------------------------------------------------
[^*]* any character except: '*' (0 or more
times (matching the most amount
possible))
--------------------------------------------------------------------------------
[^*\s] any character except: '*',whitespace
(\n,and " ")
--------------------------------------------------------------------------------
)? end of grouping
--------------------------------------------------------------------------------
\* '*'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。