我遇到以下正则表达式模式问题:
m).*?^([^n]*)(modified)([^n]*)$.*
我想用
替换剪贴板 Clipboard := RegExReplace(Clipboard, "m).*?^([^n]*)(modified)([^n]*)$.*" ,"" )
来源如下:
Ask Question Interesting 326 Featured
Hot Week Month 1 vote 0 answers 12 views
Type Guard for empty object
typescript modified 2 mins ago kremerd 312
0 votes
预期结果应该是:
typescript modified 2 mins ago kremerd 312
但是它什么也代替不了。如果可行,我以后想通过使用regExMatch获得标记名^([^n]*)
。
答案 0 :(得分:0)
您要匹配包含modified
子字符串的行。正则表达式中的点默认情况下不与换行符匹配,因此您需要传递s
(DOTALL)修饰符(可以将其与m
,MULTILINE修饰符加在一起,从而使{{1} }匹配字符串位置的开头,^
匹配行位置的结尾)。此外,要匹配非换行符,您需要$
(而不是[^\n]
)。
要解决此问题,您可以使用
[^n]
通过RegExMatch(Clipboard, "s)^.*?(\n[^\n]*)(modified|asked|answered)", res)
获取整行值,通过res
获取关键字前面的文本,并通过res1
获取关键字本身。
详细信息
res2
-s)
现在可以匹配包括换行符在内的所有字符.
-字符串的开头^
-任意0个以上的字符,尽可能少.*?
-第1组(以后通过(\n[^\n]*)
访问):换行符,后跟0+个除换行符以外的字符res1
-三种选择中的任何一种:(modified|asked|answered)
,modified
或asked
。