Regex 正则表达式:匹配除指定单词以外的单词
如何使用正则表达式匹配任何单词而不显示指定的单词 我想去掉“你”这个词 我有一些词,例如:Regex 正则表达式:匹配除指定单词以外的单词,regex,Regex,如何使用正则表达式匹配任何单词而不显示指定的单词 我想去掉“你”这个词 我有一些词,例如: you eat you handsome you die you will you lie and others 所以,这个程序的结果是: eat handsome die will lie 使用单词边界和消极前瞻: \b(?!you\b)\w+\b 使用单词边界和消极前瞻: \b(?!you\b)\w+\b /you(.*)/ 匹配组将是除开始时的you之外的所有内容。/you(.*)/ 匹配的
you eat
you handsome
you die
you will
you lie
and others
所以,这个程序的结果是:
eat
handsome
die
will
lie
使用单词边界和消极前瞻:
\b(?!you\b)\w+\b
使用单词边界和消极前瞻:
\b(?!you\b)\w+\b
/you(.*)/
匹配组将是除开始时的you之外的所有内容。/you(.*)/
匹配的组将是除开始时的“您”之外的所有组。尝试以下操作:
String sourcestring = "source string to match with pattern";
Regex re = new Regex(@"^you (.*)/$",RegexOptions.Multiline |
RegexOptions.Singleline);
MatchCollection mc = re.Matches(sourcestring);
int mIdx=0;
foreach (Match m in mc)
{
for (int gIdx = 0; gIdx < m.Groups.Count; gIdx++)
{
Console.WriteLine("[{0}][{1}] = {2}", mIdx,
re.GetGroupNames()[gIdx],
m.Groups[gIdx].Value);
}
mIdx++;
}
试试这个:
String sourcestring = "source string to match with pattern";
Regex re = new Regex(@"^you (.*)/$",RegexOptions.Multiline |
RegexOptions.Singleline);
MatchCollection mc = re.Matches(sourcestring);
int mIdx=0;
foreach (Match m in mc)
{
for (int gIdx = 0; gIdx < m.Groups.Count; gIdx++)
{
Console.WriteLine("[{0}][{1}] = {2}", mIdx,
re.GetGroupNames()[gIdx],
m.Groups[gIdx].Value);
}
mIdx++;
}
如果要使用正则表达式,则如果将其替换为matcher group$2,则此操作将有效:
/(you (\w+))|(\w+ \w+)/g
如果您想使用正则表达式,那么如果您将其替换为matcher group$2,则该操作将有效:
/(you (\w+))|(\w+ \w+)/g
PCRE方法
如果您使用(与perl兼容的正则表达式),您可以像下面这样利用跳过/失败标记:
you(*SKIP)(*FAIL)|\b(\w+)\b
然后,您是否可以访问捕获组:
MATCH 1
1. [4-7] `eat`
MATCH 2
1. [12-20] `handsome`
MATCH 3
1. [25-28] `die`
MATCH 4
1. [33-37] `will`
MATCH 5
1. [42-45] `lie`
MATCH 6
1. [46-49] `and`
MATCH 7
1. [50-56] `others`
引用一段
PCRE是与Perl兼容的正则表达式的缩写。就是这个名字
一个由Phillip Hazel用C编写的开源库。图书馆
与大量C编译器和操作系统兼容
系统。许多人已经从PCRE中派生出了库来实现它
与其他编程语言兼容。正则表达式功能
包含在PHP、Delphi和R中,Xojo(REALbasic)都基于
在PCRE上。该库还包括在许多Linux发行版中,如
共享的.so库和.h头文件
丢弃技术方法
另一方面,如果您不使用pcreregex,那么您可以使用一种优秀的regex技术(在我看来是最好的),通常称为discard技术。它包括使用或链匹配您不想要的所有模式,并在链的末尾使用您感兴趣的模式并捕获它:
discard patt1 | discard patt2 | discard pattN |(grab this!)
对于您的情况,您可以使用:
you|\b(\w+)\b
^ ^--- Capture this
+-- Discard 'you'
PCRE方法
如果您使用(与perl兼容的正则表达式),您可以像下面这样利用跳过/失败标记:
you(*SKIP)(*FAIL)|\b(\w+)\b
然后,您是否可以访问捕获组:
MATCH 1
1. [4-7] `eat`
MATCH 2
1. [12-20] `handsome`
MATCH 3
1. [25-28] `die`
MATCH 4
1. [33-37] `will`
MATCH 5
1. [42-45] `lie`
MATCH 6
1. [46-49] `and`
MATCH 7
1. [50-56] `others`
引用一段
PCRE是与Perl兼容的正则表达式的缩写。就是这个名字
一个由Phillip Hazel用C编写的开源库。图书馆
与大量C编译器和操作系统兼容
系统。许多人已经从PCRE中派生出了库来实现它
与其他编程语言兼容。正则表达式功能
包含在PHP、Delphi和R中,Xojo(REALbasic)都基于
在PCRE上。该库还包括在许多Linux发行版中,如
共享的.so库和.h头文件
丢弃技术方法
另一方面,如果您不使用pcreregex,那么您可以使用一种优秀的regex技术(在我看来是最好的),通常称为discard技术。它包括使用或链匹配您不想要的所有模式,并在链的末尾使用您感兴趣的模式并捕获它:
discard patt1 | discard patt2 | discard pattN |(grab this!)
对于您的情况,您可以使用:
you|\b(\w+)\b
^ ^--- Capture this
+-- Discard 'you'
当这个问题变成这样的时候怎么办
are you serious ?
are you ?
you are greatfull
结果:
are serious ?
are ?
are greatefull
当这个问题变成这样的时候怎么办
are you serious ?
are you ?
you are greatfull
结果:
are serious ?
are ?
are greatefull
你在运行哪个语言/工具?你在运行哪个语言/工具?你没有输入开始符号,所以它可以在任何地方。你没有输入开始符号,所以它可以在任何地方。我想你的意思是:
var result=word.Replace(“你”,”)
但它可能会取代合法的输入,比如你的
但它可能会取代合法的输入,比如您的
。