Tag: regex

正则表达式检查字符串是否包含指定的字符

如何使用正则表达式检查字符串是否仅包含指定的字符? 示例1:检查字符串是否仅包含字母和/或数字: 我尝试了什么: Regex rgx = new Regex(“[^A-Za-z0-9]”); string s = “This is a string.”; if (rgx.IsMatch(s)) { // true } else { // false; } 上面的例子应该返回false(因为我不想允许句点),但它返回true。 示例2: 仅允许使用字母和/或数字和/或空格和/或括号: Regex rgx = new Regex(“[^A-Za-z0-9() ]”); string s = “This is a [string].”; if (rgx.IsMatch(s)) { // true } else { // false; } 同样,第二个示例应该返回false(因为我不想允许括号或句点),但它返回true。

正则表达式删除特定的重复字符

我想在C#中创建一个正则表达式,如果它被重复则删除一个特定的字符,因此它不是字符串的最后一个字符。 例: “a–bc-” => “abc” “-ab–c” => “abc” “–a–b–c–” => “abc” 我从不想要 – 重复,我永远不希望它成为我的第一个或最后一个字符。 我怎么能写一个正则表达式来做这个?

C#片段需要复制VBA Like运算符

我正在转换包含LIKE运算符的VBA代码,如 dim sToken as String if sToken Like “(*,*)” then … 在所有情况下,模式仅使用匹配任何字符串(包括空字符串)的*通配符。 VBA Like运算符只产生一个true / false结果,因此可以根据后续的VBA代码进行进一步解析,并在匹配时拔出匹配的子字符串。 如果有人能提供C#片段来测试相同类型的简单通配符,我将非常感激。 如果片段也产生匹配的子串 – 甚至更好。

如何使用方法结果替换匹配组项

输入字符串是这样的: LineA:50 LineB:120 LineA:12 LineB:53 我想用MultiplyCalculatorMethod(LineAValue)的结果替换LineB值,其中LineAValue是LineB上方的行的值,而MultiplyCalculatorMethod是我的另一个复杂的C#方法。 在半码中,我想做这样的事情: int MultiplyCalculatorMethod(int value) { return 2 * Math.Max(3,value); } string ReplaceValues(string Input) { Matches mat = Regex.Match(LineA:input_value\r\nLineB:output_value) foreach (Match m in mat) { m.output_value = MultiplyCalculatorMethod(m.input_value) } return m.OutputText; } Example: string Text = “LineA:5\r\nLineB:2\r\nLineA:2\r\nLineB:7”; string Result = ReplaceValues(Text); //Result = “LineA:5\r\nLineB:10\r\nLineA:2\r\nLineB:6”; 我写了一个Regex.Match来匹配LineA: value\r\nLineB: value并在组中获取这些值。 但是当我使用Regex.Replace ,我只能提供一个“静态”结果来组合匹配的组,但我不能在那里使用C#方法。 所以我的问题是如何Regex.Replace其中Result是C#方法的结果,其中输入是LineA值。

正则表达式只接受2个地方

大家好我需要所有这些可能的情况才有效 123 123.1 123.12 我试过这个^[0-9]*\.[0-9]{2}$ or ^[0-9]*\.[0-9][0-9]$但不起作用可以任何一个帮助我出去

正则表达式匹配不包括括号的字符串

我必须解析一个文本,如果它没有被方括号包围,那么它是一个关键词。 我必须匹配关键字。 此外,必须在两侧都有单词边界。 以下是一些不是关键字的示例: [与] [与] [sometext with sometext] [sometext with] [有些文字] 以下是使用 IS关键字的一些示例 同 用 你好 你好世界 你好[世界]与你好 你好[世界]与你好[世界] 有人帮忙吗? 提前致谢。

正则表达式匹配零或一次字符串

我已经在这里工作了一个多小时没有成功,而且它正在努力。 我正在尝试制作一个匹配此字符串的正则表达式{Date HH:MM:ss},但这里的诀窍,HH,MM和ss是可选的,但它必须是“HH”,而不仅仅是“H”(相同)事情适用于MM和ss)。 如果显示单个“H”,则不应匹配该字符串。 我知道我可以使用H {2}来匹配HH,但我似乎无法使用该function加上? 匹配零次或一次(零,因为它是可选的,最多一次)。 到目前为止,我正在这样做(这显然不起作用): Regex dateRegex = new Regex(@”\{Date H{2}?:M{2}?:s{2}?\}”); 请帮帮我,抱歉这个菜鸟问题。 FB。 接下来的问题,既然我在第一个字符串上有匹配,我想只采用HH:MM:ss部分并将其放在另一个字符串中(这将是TimeStamp对象的格式)。 我使用了相同的方法,如下所示: Regex dateFormatRegex = new Regex(@”(HH)?:?(MM)?:?(ss)?”); 但是当我在“{Date HH:MM}”上尝试时,我没有匹配,为什么? 编辑:如果我添加像这样的空格Regex dateFormatRegex = new Regex(@” (HH)?:?(MM)?:?(ss)?”); 我有结果,但我不想要空间…我认为第一个括号需要被转义,但是(在这种情况下不会起作用,我猜因为它不是括号中的一部分字符串匹配但是一个关键字符。

如何用正则表达式用小写字母替换大写字母?

我需要用小写字母替换变量名中的大写字母并添加空格 例如: NotImplementedException应该是Not implemented exception UnhandledException应该是Unhandled exception

如何检查命名的捕获组是否存在?

在我的正则表达式中,模式是这样的: @”Something\(\d+, “”(.+)””(, .{1,5}, \d+, (?\d+)?\),” 所以我想知道存在。 如果它是一个普通的捕获组,我可以检查捕获组是否大于没有那个/那些捕获组的组数,但是我没有这里的选项。 有人能帮我找到解决方法吗? 我不需要它有效率,它只是用于排序的一次性程序,所以我不介意它是否需要运行一点。 它不适用于公共代码。

如何使用Regex.Replace一次替换两个字符串?

我有以下方法从文件名替换“磅”符号,但我也希望能够同时替换“单撇号”。 我该怎么做? 这是filename = Provider license_A’R_Ab#acus Settlements_1-11-09.xls的值 static string removeBadCharPound(string filename) { // Replace invalid characters with “_” char. //I want something like this but is NOT working //return Regex.Replace(filename, “# ‘ “, “_”); return Regex.Replace(filename, “#”, “_”); }