我需要有关正则表达式的帮助。
我必须匹配这样的字符串: âãa34dc
我使用的模式:
\ S * [A-ZA-Z] + [A-ZA-Z_0-9] * \ S
但这种模式不足以识别这种字符串,例如âãa34dc
P.S。这些都是瑞典人。
请帮我找出这种字符串的正确模式。
答案 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
匹配。