2017-06-15 47 views
-1
if(Regex.IsMatch(c1,@"^[A-Za-z]([\*][a-z])*[A-Za-z]+$")) 

    { 
     return true; 
    } 

我试图编写正则表达式,指定文本应以字母开头并以字母结尾在每个字母之间包含“*”。我不知道如何在每个字母之间指定特殊字符。正则表达式 - 字符串包含每个字母之间的“*”,但仅以字母开头和结尾

+0

两个非alpha字符会发生什么?他们之间不会是明星吗? –

+0

*“我不知道如何在每个字母之间指定特殊字符”*根本不清楚,显示正确和不正确输入的示例** s **。 –

+0

正确的形式是“CSaSrSaScStSeSr”,我不能在每个角色之间放置明星。所以,例如我把“S”而不是特殊字符星 – Gayathri

回答

0

如果认为你正在寻找:

^[A-Za-z](?:(?:\*[a-z])*\*[A-Za-z])?$ 

如果大写字母被允许在字符串中间,你可以用这个有趣的方法:

^(?!.*\B)[A-Za-z*]+$ 

(负前瞻(?!.*\B)防止字符串包含非字的边界)

+0

非常感谢..它工作正常 – Gayathri

+0

除了输入字符串可以以“\ n”结尾的事实。 –

+0

@WiktorStribiżew:不,这是pcre的一个特殊性,但'$'在.net中的尾随换行符之前不匹配:http://regexstorm.net/tester?p=%5e.%24&i=a%0d% 0a –

1

这应该是:

^[a-zA-Z](?:\*[a-zA-Z])+$

这将查找字符串的开始的第一个字符,然后查找后面有一个字母的*所有组合。

Demo

相关问题