怎样用正则表达式判断一个字符串里面是否含有4个*号

时间:2023-01-07 08:26:00
如题

怎样用正则表达式判断一个字符串里面是否含有4个*号

或者

怎样用正则表达式判断一个字符串里面是否含有4个`.号

16 个解决方案

#1


\*{4}

#2


[*]{4}

#3



string input = "";
Regex re = new Regex(@"^(?=([^*]*\*){4}[^*]*$)");

#4


四个不一定连续阿

#5




        int m = Regex.Matches("sdf*fad*fasd", @"\*").Count;

#6



//or
string s=="sdf*fad*fasd", 
int m=s.Length-s.Replace("*","").Length;

#7


dim str() as string
str=split(s,"*")
if str.length=4 then
msgbox s & "have four chars of *"
end if

#8


怎样用正则表达式判断?
是想知道那个匹配模式的写法。

#9


引用 8 楼 gsk09 的回复:
怎样用正则表达式判断?
是想知道那个匹配模式的写法。



int m = Regex.Matches("字符串", @"\*").Count;
if(m==4)
{
  ...
}


#10


引用 9 楼 pt1314917 的回复:
C# codeint m= Regex.Matches("字符串",@"\*").Count;if(m==4)
{
  ...
}



服了!
是要用正则表达式直接返回来True 或者False
比如用System.Text.RegularExpressions.Regex.IsMatch()

#11


Public Class Form1

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        TextBox1.Text = "Aliba*ba@sina.com QQxyz@**ya*hoo.com"


    End Sub
    Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim r As New System.Text.RegularExpressions.Regex("\*")
        '在TextBox1.Text中检索一个和正则表达式一致的对象
        Dim m As System.Text.RegularExpressions.Match
        Dim i As Integer

        m = r.Match(TextBox1.Text)
        '如下,也可以检索所有的一致的对象
        'Dim m As MatchCollection = r.Matches(TextBox1.Text)
        While m.Success
            '发现一致的对象的时候
            '表示发现部分的文字列
            'MsgBox(m.Value)
            '检索下一个一致的对象
            m = m.NextMatch()
            i = i + 1
        End While
        MsgBox(i & "个*")
    End Sub
  
End Class

#12


最笨的办法,每个丢检查一下
for i= 1 to 字符串长度
  if(。。。="*") then 个数++
  if 个数 = 4 then return true
next

#13


谢谢大家啊。
其实是想用System.Text.RegularExpressions.Regex.IsMatch()的。
然后是想,把找到的四个*中的前三个替换成/
也就是说。我是想知道怎么能用正则表达式判断一个字符串里面是否含有4个*,如果有,怎么用正则表达式替换前三个为/

#14


建议你用12楼的笨办法

#15


晕死,有没有试阿

b = Regex.IsMatch(input, "^(?=([^*]*\*){4}[^*]*$)")
' "lasjdil*jslfjf*alsdjfi*lksjdf*lasjf*sdf"   false
' "lasjdil*jslfjf*alsdjfi*lksjdf*lasjf"  true

已验证
不知楼主到底想要什么样的

#16


引用 15 楼 wackyboy 的回复:
晕死,有没有试阿
VB.NET code
b= Regex.IsMatch(input,"^(?=([^*]*\*){4}[^*]*$)")' "lasjdil*jslfjf*alsdjfi*lksjdf*lasjf*sdf"   false
' "lasjdil*jslfjf*alsdjfi*lksjdf*lasjf"  true
已验证
不知楼主到底想要什么样的


谢谢。你的就是我要的。
能不能再帮我解决一下:怎么用正则表达式把前三个 * 替换为 / 
望赐教。

#1


\*{4}

#2


[*]{4}

#3



string input = "";
Regex re = new Regex(@"^(?=([^*]*\*){4}[^*]*$)");

#4


四个不一定连续阿

#5




        int m = Regex.Matches("sdf*fad*fasd", @"\*").Count;

#6



//or
string s=="sdf*fad*fasd", 
int m=s.Length-s.Replace("*","").Length;

#7


dim str() as string
str=split(s,"*")
if str.length=4 then
msgbox s & "have four chars of *"
end if

#8


怎样用正则表达式判断?
是想知道那个匹配模式的写法。

#9


引用 8 楼 gsk09 的回复:
怎样用正则表达式判断?
是想知道那个匹配模式的写法。



int m = Regex.Matches("字符串", @"\*").Count;
if(m==4)
{
  ...
}


#10


引用 9 楼 pt1314917 的回复:
C# codeint m= Regex.Matches("字符串",@"\*").Count;if(m==4)
{
  ...
}



服了!
是要用正则表达式直接返回来True 或者False
比如用System.Text.RegularExpressions.Regex.IsMatch()

#11


Public Class Form1

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        TextBox1.Text = "Aliba*ba@sina.com QQxyz@**ya*hoo.com"


    End Sub
    Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim r As New System.Text.RegularExpressions.Regex("\*")
        '在TextBox1.Text中检索一个和正则表达式一致的对象
        Dim m As System.Text.RegularExpressions.Match
        Dim i As Integer

        m = r.Match(TextBox1.Text)
        '如下,也可以检索所有的一致的对象
        'Dim m As MatchCollection = r.Matches(TextBox1.Text)
        While m.Success
            '发现一致的对象的时候
            '表示发现部分的文字列
            'MsgBox(m.Value)
            '检索下一个一致的对象
            m = m.NextMatch()
            i = i + 1
        End While
        MsgBox(i & "个*")
    End Sub
  
End Class

#12


最笨的办法,每个丢检查一下
for i= 1 to 字符串长度
  if(。。。="*") then 个数++
  if 个数 = 4 then return true
next

#13


谢谢大家啊。
其实是想用System.Text.RegularExpressions.Regex.IsMatch()的。
然后是想,把找到的四个*中的前三个替换成/
也就是说。我是想知道怎么能用正则表达式判断一个字符串里面是否含有4个*,如果有,怎么用正则表达式替换前三个为/

#14


建议你用12楼的笨办法

#15


晕死,有没有试阿

b = Regex.IsMatch(input, "^(?=([^*]*\*){4}[^*]*$)")
' "lasjdil*jslfjf*alsdjfi*lksjdf*lasjf*sdf"   false
' "lasjdil*jslfjf*alsdjfi*lksjdf*lasjf"  true

已验证
不知楼主到底想要什么样的

#16


引用 15 楼 wackyboy 的回复:
晕死,有没有试阿
VB.NET code
b= Regex.IsMatch(input,"^(?=([^*]*\*){4}[^*]*$)")' "lasjdil*jslfjf*alsdjfi*lksjdf*lasjf*sdf"   false
' "lasjdil*jslfjf*alsdjfi*lksjdf*lasjf"  true
已验证
不知楼主到底想要什么样的


谢谢。你的就是我要的。
能不能再帮我解决一下:怎么用正则表达式把前三个 * 替换为 / 
望赐教。