首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >.net中的正则表达式,用于排除特定单词以及多个空格和换行符

.net中的正则表达式,用于排除特定单词以及多个空格和换行符
EN

Stack Overflow用户
提问于 2011-11-21 01:27:15
回答 1查看 2.4K关注 0票数 1

我需要一个正则表达式来查找像这样的子字符串

代码语言:javascript
运行
复制
from xyzTableName     with   (  index =...  

代码语言:javascript
运行
复制
from xyzTableName     (  index =...

如果with关键字不在那里,那么它应该返回一个匹配,如果with存在于FROM关键字之后,(之前,那么应该没有匹配。必须忽略from(之间的所有其他单词。

我试着用下面的表达:

代码语言:javascript
运行
复制
    @"\bfrom.*[\s\t\n]+(?<!with)[\s\t\n]([\s\t\n]+index"

以及相同的一些变体。当只有普通空格/单个空格时,我能够解决这个问题。但是当我尝试使用多个空格和换行符时,它失败了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-21 02:15:09

试试这个模式:\bfrom\b(?!.+\bwith\b)[^(]+\(\s*index

代码语言:javascript
运行
复制
string input = @"from xyzTableName     
with   (  index =...";
string pattern = @"\bfrom\b(?!.+\bwith\b)[^(]+\(\s*index";
bool result = Regex.IsMatch(input, pattern,
                RegexOptions.Singleline | RegexOptions.IgnoreCase);

上面的代码返回false。更改输入以删除单词"with“,它将返回true。通过使用RegexOptions.Singleline.元字符将匹配所有字符,包括换行符(\n)。

模式分解:

  • \bfrom\b:精确匹配单词"from“,并使用单词边界的索引前视检查”metacharacters
  • (?!.+\bwith\b):“,如果does
  • [^(]+:负字符类匹配任何不是左括号的字符,则匹配将失败,至少索引匹配一个左括号(请注意,它必须转义)、任何空格,然后是单词”once.
  • \(\s*index:“
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8203272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档