2017-06-15 101 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

相關問題