C#正则表达所有字符和' - '

时间:2017-06-10 17:21:44

标签: c# regex

我一直在尝试我在谷歌上找到的所有组合,但似乎没有任何东西允许我使用所有字母的正则表达式而只有一个特殊的字符..

我想要实现的例子:

某物(接受)

某事(接受)

-Something(不接受)

SomethingSomething-(不接受)

东西出头-财产以后(接受)

所以如你所见,我需要能够使用所有字母和特殊字符 - 在字母之间的任何地方。希望有人知道如何实现这个目标的答案。

我的代码:

int  (*fp)(char *)=(int(*)(char *))&puts, i;

5 个答案:

答案 0 :(得分:1)

如果你需要连字符前后的字母:

[A-Za-z]+\-[A-Za-z]+

如果你只需要字符串中的连字符和字母

[A-Za-z]?\-[A-Za-z]?

答案 1 :(得分:1)

您可以使用此正则表达式

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

检查here

正则表达式细分

^ #Start of string
[A-Za-z]+ #Match alphabets
(?:[- ][A-Za-z]+)* #Match - followed by alphabets 0 or more times
$ #End of string

答案 2 :(得分:0)

这种模式对你有用吗?

^([A-Za-z]+-)+[A-Za-z]+$

匹配

Something-Something
Something-Something-Something
S-o-m-e-t-h-i-n-g

不匹配

-Something
Something-
Something-Something-
Something

答案 3 :(得分:0)

试试这个正则表达式

float

答案 4 :(得分:0)

试试这个。您没有指定是否需要短划线。我认为破折号是可选的。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] inputs = {
                "Something-something", 
                "-Something",
                "SomethingSomething-",
                "something-something-somthing",
                "1234"
            };

            string pattern = @"^([A-Za-z]+[-\s]?[A-Za-z]+)+$";

            foreach (string input in inputs)
            {
                Console.WriteLine("Input : '{0}', Match : '{1}'", input, Regex.IsMatch(input, pattern) ? "Yes" : "No");
            }
            Console.ReadLine();
        }


    }

}