小编Wik*_*żew的帖子

匹配不包含特定文本的行与正则表达式

我想用正则表达式执行以下操作但不确定如何执行此操作.我希望它匹配one two何时one two是行的开头,除非字符串包含three在后面的任何地方one two.

regex

10
推荐指数
2
解决办法
2944
查看次数

从字符串的开头提取小数

我有一个字符串喜欢5.5kg7.90gram我想得到5.57.90作为十进制值.如何在C#中获得这样的结果,还有一件事我的字符串将始终以十进制开头.

这是我的代码,只要遇到除小数之外的任何内容,就会抛出错误.

string weight = attributeValue;
if (!string.IsNullOrEmpty(weight))
{
    product.Weight = Convert.ToDecimal(attributeValue);
}
else
{
    product.Weight = 0.00m;
}
Run Code Online (Sandbox Code Playgroud)

.net c#

10
推荐指数
1
解决办法
1万
查看次数

如何全局替换管道符号"|" 在字符串中

如何全局替换|字符串中的(管道)符号?当我尝试更换它时"so|me|str|ing".replace(/|/g, '-'),我明白了"-s-o-|-m-e-|-s-t-r-|-i-n-g-"

javascript regex

10
推荐指数
3
解决办法
1万
查看次数

如何仅在字符串内的某个位置替换匹配?

所以,我有一个函数有两个参数:字符串和匹配索引要替换,我需要替换只匹配该索引.我怎样才能做到这一点?

例:

replace('a_a_a_a_a', 1)
Run Code Online (Sandbox Code Playgroud)

结果:

a__a_a_a
Run Code Online (Sandbox Code Playgroud)

javascript regex

9
推荐指数
2
解决办法
1万
查看次数

oracle 12c - 在最后一次出现字符后选择字符串

我有以下字符串:

ThisSentence.ShouldBe.SplitAfterLastPeriod.Sentence
Run Code Online (Sandbox Code Playgroud)

所以我想选择,Sentence因为它是最后一个时期之后的字符串.我怎样才能做到这一点?

sql string oracle oracle12c

9
推荐指数
2
解决办法
4万
查看次数

正则表达式恰好匹配n次出现的字母和m次出现的数字

我必须匹配一个8个字符的字符串,它可以包含2个字母(1个大写和1个小写),正好是6个数字,但它们可以任意排列.

所以,基本上:

  • K82v6686会通过
  • 3w28E020会通过
  • 1276eQ900会失败(太长时间)
  • 98Y78k9k会失败(三个字母)
  • A09B2197会失败(两个大写字母)

我已经尝试使用正向前瞻来确保字符串包含数字,大写和小写字母,但是我将其限制为特定次数.我想我可以通过包括字母和数字可能出现的所有可能组合来解决它:

(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z]) ([A-Z][a-z][0-9]{6})|([A-Z][0-9][a-z][0-9]{5})| ... | ([0-9]{6}[a-z][A-Z])
Run Code Online (Sandbox Code Playgroud)

但这是一种非常迂回的方式,我想知道是否有更好的解决方案.

java regex

9
推荐指数
1
解决办法
7052
查看次数

仅删除前N个字符中的任何数字

我正在寻找一个正则表达式来捕获字符串中前7个字符的所有数字.

这个字符串有12个字符:

A12B345CD678
Run Code Online (Sandbox Code Playgroud)

我想删除A,B因为他们在前7个字符(A12B345)内得到

12345CD678
Run Code Online (Sandbox Code Playgroud)

所以,CD678不应该触及.我目前在R的解决方案:

paste(paste(str_extract_all(substr("A12B345CD678",1,7), "[0-9]+")[[1]],collapse=""),substr("A12B345CD678",8,nchar("A12B345CD678")),sep="??") 
Run Code Online (Sandbox Code Playgroud)

这似乎太复杂了.我按照描述将字符串拆分为7,匹配前7个字符中的任何数字,并将其与字符串的其余部分绑定.

寻找一般答案,我目前的解决方案是拆分前7个字符,并匹配此子字符串中的所有数字.

任何帮助赞赏.

regex r

9
推荐指数
2
解决办法
468
查看次数

如何使用 R 保留其顺序,将字符串中的字符替换为向量中的字符

我有这个字符串:

 seed_pattern <- "K?ED??HRDDKDKD?HE?REKE??DE?KKK"
Run Code Online (Sandbox Code Playgroud)

给定另一个字符串

bb_seq <- "rhhhhitv"
Run Code Online (Sandbox Code Playgroud)

我想做的是通过保持结果的顺序来替换?为字符:bb_seqbb_seq

的总长度?保证与 相同bb_seq

KrEDhhHRDDKDKDhHEhREKEitDEvKKK
Run Code Online (Sandbox Code Playgroud)

我怎样才能用 R 实现这一目标?

我尝试过这个但失败了:

  seed_pattern <- "K?ED??HRDDKDKD?HE?REKE??DE?KKK"
  bb_seq <- "rhhhhitv"
  sp <- seed_pattern
  gr   <- gregexpr("\\?+", sp)
  csml <- lapply(gr, function(sp) cumsum(attr(sp, "match.length")))
  regmatches(sp, gr) <- lapply(csml, function(sp) substring(bb_seq, c(1, sp[1]), sp))
  sp

  # KrEDrhhHRDDKDKDrhhhHErhhhhREKErhhhhitDErhhhhitvKKK
Run Code Online (Sandbox Code Playgroud)

我对非正则表达式解决方案持开放态度。

string replace r

9
推荐指数
2
解决办法
653
查看次数

在C#中构建动态正则表达式模式

我正在尝试构建一个正则表达式模式,其中包含从数据库中检索的某些模式部分.

例如

string pt= "@\"\\b(" + db.GetPattern + ")\\b\"";        
Regex regex = new Regex(pt, RegexOptions.IgnoreCase | RegexOptions.Compiled);
return regex.Replace(input, "*");
Run Code Online (Sandbox Code Playgroud)

虽然我试图逃避它,但我无法让它发挥作用.如果我手动构建模式

Regex regex = new Regex(@"\b(test|test2)\b", RegexOptions.IgnoreCase | RegexOptions.Compiled);
return regex.Replace(input, "*");
Run Code Online (Sandbox Code Playgroud)

它工作正常.

c# regex

8
推荐指数
1
解决办法
8233
查看次数

匹配Java正则表达式中的y组中的x

是否有可能在Java中编写一个正则表达式模式,例如,3个中的2个(或4个中的3个)组?

例如,我有以下正则表达式:

((?=.*\d)(?=.*[a-z])(?=.*[A-Z]))
Run Code Online (Sandbox Code Playgroud)

这将只允许匹配所有三个组的模式 - 即它必须包含一个数字和一个小写字符和一个大写字符.我想这样做,它将验证一个包含三个组中至少两个的模式(例如一个数字和一个大写字符或一个小写和大写字符).

它是在单个语句中可行还是我将不得不编写单独的正则表达式并循环它们?

java regex

8
推荐指数
1
解决办法
128
查看次数

标签 统计

regex ×7

c# ×2

java ×2

javascript ×2

r ×2

string ×2

.net ×1

oracle ×1

oracle12c ×1

replace ×1

sql ×1