我试图找出一个正则表达式模式,以返回除两个特殊字符(;)之间的空格以外的所有字符。 谢谢您的帮助。
这是我的正则表达式模式。 [^\w](?<Group1>[^;\W].+)
示例文本以进行匹配。
Please; help;me
我以help;me
作为Group1匹配者,但我只需要help
。
答案 0 :(得分:1)
[^\w](?<Group1>[^;\W].+)
模式与非单词char匹配,然后捕获非单词和;
以外的任何char(即;
以外的任何单词char,这几乎没有意义,可以将;
从类中安全移除),然后将尽可能多的1个以上的字符放入第1组中。基本上,可以将其重写为\W(?<Group1>\w.+)
,您会发现它匹配得太多并且不是您所需要的。
您可以使用模式like this,其中\S*?
匹配除空格以外的任何0+字符,并且尽可能少:
;\s*(?<Group1>\S*?)\s*;
或者,此模式的更有效的变体:
;\s*(?<Group1>[^;\s]*)\s*;
在[^;\s]*
模式中,;
是从\S
中减去的,而[^;\s]*
现在匹配零个或多个除空格和;
以外的字符,如尽可能多。