Regex 正则表达式仅成对匹配$-char
我使用以下正则表达式来检查必须以Regex 正则表达式仅成对匹配$-char,regex,Regex,我使用以下正则表达式来检查必须以$开头和结尾的字符串: ^[$][\w:$]+[$]$ 这只适用于以下字符串: $Hello_World$ $Test$123$ 现在,我想让正则表达式也检查在开头和结尾之间是否有一个$,$只有在“$”字符以成对形式出现时才允许它,如: $Hello$Test$World$ 这样就可以了 $Hello$World$ 应该不行 我尝试了以下方法: ^[$][\w:($)\2]+[$]$ 但不幸的是,这并不像预期的那样有效 有什么想法吗? < P>你可以考虑一个
$
开头和结尾的字符串:
^[$][\w:$]+[$]$
这只适用于以下字符串:
- $Hello_World$
- $Test$123$
$
,$
只有在“$”字符以成对形式出现时才允许它,如:
$Hello$Test$World$
这样就可以了
$Hello$World$
应该不行
我尝试了以下方法:
^[$][\w:($)\2]+[$]$
但不幸的是,这并不像预期的那样有效
有什么想法吗? < P>你可以考虑一个类似于< /P>的正则表达式。
^[$][\w:]+(?:[$][\w:]+[$][\w:]+)*[$]$
看
如果$
之间的部分可以为空,并且$$
也有效,请将[\w:][/code>之后的+
替换为*
,以允许0次或更多次重复
详细信息
^
-字符串的开头
[$]
-一个$
符号(在许多情况下,写\$
或\\$
就足够了)
[\w:::+
-1个或多个单词字符或/和冒号
(?:[$][\w:][$][\w:][+])*
-(或(?:(?:[$][\w:][+]){2})*
)0+重复两次:
[$]
-$
char
[\w:::+
-1个或多个单词字符或/和冒号
[$]
-a$
字符
$
-字符串结束
也许吧?$
之间的部分是否可以为空?另外,请参见为您执行上述任一工作?\$
而不是[$]
,以获得更好的可读性,否则将非常完美;-)