查找字符串中两个单独字符之间的所有逗号

时间:2018-03-30 20:00:41

标签: regex

我有一个包含逗号的子字符串。此子字符串位于另一个字符串内,该字符串是以半冒号分隔的列表。我需要匹配该子字符串中的逗号。子字符串有一个关键字段" u3 ="在它面前。

示例:

df

到目前为止的正则表达式:

library(ggplot2)
library(plyr)
library(dplyr)

df <- df %>% mutate(sign = ifelse(IND1 > 0, "Pos", "Neg"))

ggplot(df, aes(x = Dep, y = IND1, fill = factor(sign))) + geom_bar(stat = "identity") + coord_flip()

我上面正在研究的正则表达式匹配&#34; u3&#34;之间的所有内容。和最后一个&#34 ;;&#34;在outerstring。我需要只匹配子字符串中的逗号。

非常感谢任何指导。

3 个答案:

答案 0 :(得分:1)

您没有指定语言!

C#,VB(.NET):

使用无限正面的背后,

(?<=u3=[^;]*),

爪哇:

使用可变长度的正向外观:

(?<=u3=[^;]{0,9999}),

PHP(PCRE),Perl,Ruby:

使用\G\K令牌:

(?>u3=|\G(?!^))[^,;]+\K,

Live demo

JavaScript的:

使用两种replace()方法(如果您要替换),

var s = 'u1=something;u2=somethingelse;u3=cat,matt,bat,hat;u4=anotherthing;u5=yetanotherthing';

console.log(
  s.replace(/u3=[^;]+/, function(match) {
    return match.replace(/,/g, '*');
  })
)

答案 1 :(得分:0)

尝试使用此正则表达式:

(?<=u3)[^;]+

结果是:

=cat,matt,bat,hat

答案 2 :(得分:0)

如果这是PHP,我会这样做:

ffmpeg -i op.mp4 -ss 00:00:00.11 -t 00:00:06.00 -vn -y op.wav
ffmpeg -i op.mp4 -ss 0.010000 -t 00:00:06 -vcodec rawvideo -an -y op.avi
ffmpeg -i op.avi -i op.wav -b:v 590k -b:a 130k -t 00:00:06 -y op_fixed.mp4