我有一个字符串。该字符串可以包含空格、拉丁字符和符号 $。
例子:tert ertert$sdfsdf
但是,符号 $ 必须只被字符包围,而不是空格。
好字符串:"teststring$sdfsdf"
坏字符串:"test $sdfsdf"
坏字符串"test $ string"
我怎样才能为这个字符串做正则表达式?
谢谢
不确定您需要什么语言,但这将/\s+\$|\$\s+/
与“坏”场景相匹配。
逻辑是
\s+ //at least one space
\$ //follow by a dollar sign
| // or
\$ //dollar sign
\s+ followed by at least one space
所以,如果这是 Java,它看起来像:
myString.matches("\\s+\\$|\\$\\s+")
在 Perl 中,它将是:
if(myString =~ m/\s+\$|\$\s+/){
//found bad example
}
我建议更具体地询问语言示例,因为这些示例确实会因使用而有所不同。
此外,该网站上的人倾向于认为您应该在来这里寻求帮助之前尝试自己解决这个问题。因此,如果您想避免看到关于您已经尝试过的事情的尖刻评论,您应该将失败的尝试作为对暴躁力量的牺牲:)。只是问“我该怎么做”确实会让这个人回答“我从哪里开始......你已经知道什么,你实际上在哪里卡住等等”。