瑞典字符的模式匹配

时间:2012-04-06 18:30:56

标签: c# regex

我需要有关正则表达式的帮助。

我必须匹配这样的字符串: âãa34dc

我使用的模式:

\ S * [A-ZA-Z] + [A-ZA-Z_0-9] * \ S

但这种模式不足以识别这种字符串,例如âãa34dc

P.S。这些都是瑞典人。

请帮我找出这种字符串的正确模式。

3 个答案:

答案 0 :(得分:3)

你真的想将它限制为瑞典字符吗?换句话说,德国人不应该匹配吗?如果是这样,那么你可能需要枚举整个字母表,并包含它。

如果您真正想要的是匹配每个字母字符,请使用正则表达式术语匹配所有字母。

\w匹配任何单词字符,但包含数字&一些标点符号。这很接近,但不是你想要的第二个学期。

对于第一个术语,您不希望包含数字,指定该字符应该是Unicode'字母'类将起作用。 \p{L}指定所有字母的Unicode字符。这包括[a-zA-Z],以及所有瑞典字符,德语和俄语等

因此,我认为这个正则表达式是你想要的:

\s*[\p{L}][\p{L}_0-9]*\s

如果您想要包含digits from other character sets和一些other punctuation,那么您可以在第二个学期使用[\w]*

答案 1 :(得分:0)

请提供一套规则。

根据你的问题:

    [X-Ya-zA-Z]{3}[0-9]{2}[a-zA-Z]{2}
  

将X替换为第一个瑞典字母

     

将Y替换为最后一封瑞典字母

答案 2 :(得分:0)

John Machin为此提供了一个很好的答案。适应他的模式,你需要的东西可能类似于:\s*[^\W\d_]\w*\s*

P.S。我从第一部分中删除了+量词。任何后续字母将与后续量化的\w匹配。