正则表达式 在单一组中捕获字符后面的字符本身或其他特定字符
问题描述
我正在尝试处理一个代码,其中注释可以用以下方式表示: ! , !! , 或 !> 。
我想在一个单一组中匹配所有这些可能性,但是我尝试了到目前为止,无论我尝试什么,似乎都会将 ! 在 !! 或 !> 等中匹配为单独的实体。
示例: https://regex101.com/r/u0vMY6/2
如果有人能帮助解决这个问题,那将非常棒,并帮助我取得进展。
更具体地说,我想通过匹配注释定界符后面有0个或2个以上的空格和一个单词来实现这一目标。
我在这里总结了我想要实现的内容: https://regex101.com/r/u0vMY6/4
如果需要,我可以将其拆分成多个检查步骤。
我对正则表达式并不是很熟悉,但是已经阅读了各种备忘单和stackoverflow问题,但是还没有找到解决方案。感谢任何帮助。
解决方案
你可以使用以下正则表达式:
查看 正则表达式演示 .
详细信息 :
! [!>#]?- 一个!字符后面跟着一个可选的!,>,#-
- 两者之中的一个:(?=[^\s!>#$]|\s{2}|\s\$)- 一个正向先行断言,如果其后紧跟着[^\s!>#$]- 任何字符,除了空格、!、>、#、$|- 或\s{2}- 两个空格|- 或\s\$- 空格,然后是一个$
|- 或者\$(?!\S)- 一个$字符后面跟着一个空白边界
\s*- 零个或多个空格(.*)- 第二组:剩余的字符串。
极客笔记