正则表达式 - 匹配字符,数字和特殊字符

时间:2011-02-08 16:35:52

标签: c# regex

我有以下字符串:

test123 test ödo 123teö"st 123 m.1212 123t.est

我只想匹配字符串,数字和特殊字符混合在一起的整个字符串。因此正则表达式应匹配上面示例的以下字符串:

test123 测试ödo123teö“st 123 m.1212 123t.est

有人可以帮帮我吗?

更新 很抱歉没有给出我需要的明确解释。

  1. 我正在使用C#。

  2. 我需要找到包含字母数字字符串的单词(例如abc123,123abc,a1b2c3,1abc23等)。此外,我需要找到包含任何类型符号的字符串(符号=除字符和数字之外的任何其他字符)(例如abc“123,”abc,ab?dd,100mm“,345t {asd] dd)

    < / LI>
  3. 如果找到匹配项,我需要“标记”(用空格分隔数字,单词字符和符号)这些字符串,以便abc123成为abc 123345t{asd]dd 345 t { asd ] dd

2 个答案:

答案 0 :(得分:2)

假设您正在使用支持前瞻和Unicode属性的正则表达式风格,这应该可以帮助您入门:

(?!(?:\pL+|\pN+|\pP+)(?!\S))\S+

\S+匹配一个或多个非空白字符,但只有在负前瞻声明这些字符不是所有字母(\pL),数字(\pN)或标点符号之后(\pP)。 内部否定前瞻 - (?!\S) - 确保外部人员检查所有字词中的字符。

虽然它可能满足您的要求,但这个正则表达式实际上只是您可能想要使用的技术的演示。实际上,它可以被“单词”所愚弄,例如控制字符或其中的dingbats。

答案 1 :(得分:0)

您实际问过的问题的答案是(?s).+,但也许您会关注优化问题。