我有以下正则表达式来检查必须以$
开头和结尾的字符串:
^[$][\w:$]+[$]$
这适用于以下字符串:
现在,我希望正则表达式检查前导$
之间是否有$
,只有在出现' $' -chars时才允许像夫妻一样:
$你好$测试$ $世界
这没关系。
$你好$ $世界
不应该没问题。
我尝试了以下内容:
^[$][\w:($)\2]+[$]$
但不幸的是,这并没有像预期的那样发挥作用。
有什么想法吗?
答案 0 :(得分:1)
您可以考虑像
这样的正则表达式^[$][\w:]+(?:[$][\w:]+[$][\w:]+)*[$]$
如果$
之间的部分可以为空并且$$$$
也有效,请在+
之后用[\w:]
替换*
以允许0或更多的部分。
<强>详情
^
- 字符串开头[$]
- 一个$
符号(在很多情况下,只需写\$
或\\$
)[\w:]+
- 一个或多个单词字符或/和冒号(?:[$][\w:]+[$][\w:]+)*
- (或(?:(?:[$][\w:]+){2})*
)0次重复出现2次:
[$]
- $
char [\w:]+
- 一个或多个单词字符或/和冒号[$]
- $
字符$
- 字符串结束。