我如何只获取数字并在一个字符串中包含空格,而在另一个字符串中只包含文本和空格?
我试过这个:
string value1 = "123 45 New York";
string result1 = Regex.Match(value1, @"^[\w\s]*$").Value;
string value2 = "123 45 New York";
string result2 = Regex.Match(value2, @"^[\w\s]*$").Value;
result1需要为“123 45”
result2需要是“纽约”
答案 0 :(得分:1)
尝试下一个代码:
string value1 = "123 45 New York";
string digitsAndSpaces = Regex.Match(value1, @"([0-9 ]+)").Value;
string value2 = "123 45 New York";
string lettersAndSpaces = Regex.Match(value2, @"([A-Za-z ])+([A-Za-z ]+)").Value;
更新
如何从值2中获得像åäö这样的字符?
string value3 = "å ä ö";
string speclettersAndSpaces = Regex.Match(value3, @"([a-zÀ-ÿ ])+([a-zÀ-ÿ ]+)").Value;
答案 1 :(得分:1)
快速正则表达式只允许它们之间的数字和空格,字符也一样。
正则表达式:(?:\d[0-9 ]*\d)|(?:[A-Za-z][A-Za-z ]*[A-Za-z])
<强>详情:
(?:)
非捕获组\d
匹配一个数字(等于[0-9]
)[]
匹配列表中的单个字符*
零和无限次之间的匹配|
或<强>输出强>:
Match 1
Full match 0-6 `123 45`
Match 2
Full match 7-15 `New York`