- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个以“WORD”开头并匹配除原始“WORD”之外的所有字母、数字和字符直到出现“ENDWORD”的模式。
在这个例子中,我希望它匹配第二次出现的“WORD”并匹配到“ENDWORD”;但是,它是从第一次出现开始的,并没有正确排除第二次出现的“WORD”。
看起来好像技巧是匹配除“WORD”之外的任何字符。下面的示例使用由前面的“.”取反的否定前瞻。 (任何),但我不确定如何将肯定的“任何”或换行符集与否定词结合起来。任何帮助将不胜感激。
这是我在 LinqPad 中运行的示例 C# 程序。
无效主要(){
var text =
@"WORD
[asdf] ---
123/\*&
WORD
[asdf] ---
123/\*&
ENDWORD
[asdf] ---
123/\*&";
var pattern = $"(WORD).|\\n\\b(?!WORD)\\b.|\\n*(ENDWORD)";
Regex rgx = new Regex(pattern);
foreach (Match match in rgx.Matches(text))
{
match.Dump();
}
另一种陈述问题的方法是从“ENDWORD”开始(捕获它),回溯,忽略所有字符,直到找到第一次出现的“WORD”并将其捕获。只是修改以澄清“ENDWORD”不是字符串的结尾。
最佳答案
对于您的示例数据,您可以首先匹配前面有空格或制表符的 WORD
。然后重复匹配不包含 WORD 的行,直到遇到包含以空格或制表符开头的 ENDWORD
的行。
要检查该行是否不包含 WORD,您可以使用否定先行。
[ \t]WORD\b.*(?:\r?\n(?!.*[ \t](?:END)?WORD\b).*)*\r?\n[ \t]+ENDWORD\b
解释
[\t]
匹配空格或制表符WORD\b
匹配WORD和词边界.*
匹配除换行符之外的任何字符 0+ 次(?:
非捕获组
\r?\n(?!.*[\t](?:END)?WORD\b)
重复 0+ 次不包含可选 END 后跟 WORD.*
如果是,则匹配整行)*
关闭非捕获组并重复0+次\r?\n[\t]+ENDWORD\b
匹配一个换行符,1+空格或制表符和带词边界的ENDWORD例如:
var pattern = @"[ \t]WORD\b.*(?:\r?\n(?!.*[ \t](?:END)?WORD\b).*)*\r?\n[ \t]+ENDWORD\b";
关于c# - 需要一个 C# 正则表达式模式,其中包含除排除字以外的任何字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57416386/
我已经坚持了好几天了……很抱歉遇到这样的问题,但是我只是F#本身的初学者。由于关于类型提供程序的讨论很多,所以我决定建立一个类型提供程序并撰写一篇有关它的论文。当我开始时,我不知道什么是类型提供程序。
我正在开发LAN项目唤醒功能,但是我想控制局域网中计算机是否打开。但是我不想使用ICMP或WMI(我的网络上有DC)。那么,对于此问题,是否还有其他选择,例如“套接字连接”,请检查特定端口是否正在使用
我们有一个旧的VB6应用程序,该应用程序使用Crystal Reports XI生成打印报告。我们已经通过经验发现,如果Crystal Reports打印引擎选择了错误版本的 usp10.dll (W
我正在尝试获取有效的 Android 权限列表。我知道 http://developer.android.com/reference/android/Manifest.permission.html
嗨,我是 nginx 的新手,我试图在我的服务器(运行 Ubuntu 4)上设置它,它已经运行了 apache。 所以在我 apt-get install 它之后,我尝试启动 nginx。然后我收到这
如何在VB 6中检查对象的类型-除了'TypeName'之外,是否还有其他方法,因为无法通过'TypeName'进行检查,我希望使用类似QuichWatch窗口的方法。 最佳答案 对于对象变量,请使用
我的 JSP 应用程序中有一个错误。发布后我的 session 被清除: YAHOO.util.Connect.asyncRequest('POST', Url, callback, post
我是一名优秀的程序员,十分优秀!