首页 > 解决方案 > 带有双标签的正则表达式到马赫合并代码

问题描述

我正在使用一些正则表达式来匹配我在文档中的所有合并代码..

合并代码是这样的。

##customer.name
##customer.eployee.address

ETC

我做了这个非常简单的正则表达式

\S*##\S*

这有助于我匹配所有情况,因为它将空格作为“分隔符”,并且适用于以下三个示例:

1
##customer.name ##customer.address

2
##customer.name ##customer.address

3
##customer.name     ##customer.address 

但不在这些:

1
##customer.name##customer.address 

2
##customer.name,##customer.address 

3
##customer.name--##customer.address 

我知道每次遇到新的## 时我都必须重新开始,但我一直在尝试的所有事情似乎都不起作用。

搜索后尝试了这个,但它没有解决问题:(

\S*##[^##\s]*

我们欢迎所有的建议 :)

谢谢

标签: regex

解决方案


您可以使用以下两种方法之一:

##[^#\s]+\b
##\w+(?:\.\w+)*

请参阅正则表达式演示 #1正则表达式演示 #2

细节

  • ##- 匹配##子字符串
  • [^#\s]+\b- 除#和空格之外的任何 1+ 字符,尽可能多,但应停在最右边的单词边界处
  • \w+(?:\.\w+)*- 匹配 1+ 个字母/数字/下划线,然后匹配任何 0 个或多个序列.和 1+ 个字母/数字/下划线。

推荐阅读