我不确定这是否可行,但我需要一种方法来替换我的regex表达式中指定的编号组的值,使用在运行时动态声明的字符串,一旦匹配完成.
鉴于一个简单的案例,像......
(/)?([A-Za-z0-9])?(/)?$
Run Code Online (Sandbox Code Playgroud)
我希望能够为第2组插入替代品.
我目前正在使用Java的Matcher类.
我有这个正则表达式的问题它似乎没有抓住标题(在最后''之后的所有内容.)我已经在多个来源上测试了正则表达式,他们似乎都抓住了正确的分组.扫描功能是我做错了吗?
##### data.csv file #####
## Web_Sites.Shopping.Newegg,...
## Web_Sites.Shopping.Newegg_Secure,...
## Web_Sites.Shopping.O'Reilly_Books,...
## Web_Sites.Shopping.PackageTrackr,...
#####
## Grab the title from the list
regex = '([\w_-]+)$'
## Open the CSV File
data_file = CSV.open("data.csv", "r")
## Set the file we will append the data.
my_file = File.new("titles.csv", 'a')
## For each line in the data file, get the correct title
data_file.each do |data|
note = data[0]
title = note.scan(regex)
my_file.print "#{note} : #{title}"
end
Run Code Online (Sandbox Code Playgroud)
谢谢你,
LF4
我有一个正则表达式:
/(alpha)|(beta)|(gamma)/gi
Run Code Online (Sandbox Code Playgroud)
一些要匹配的文字:
Betamax. Digamma. Alphabet. Hebetation.
Run Code Online (Sandbox Code Playgroud)
比赛是:
beta, gamma, alpha, beta
Run Code Online (Sandbox Code Playgroud)
我正在寻找的价值观是:
1,2,0,1
Run Code Online (Sandbox Code Playgroud)
...我可以确定在正则表达式中匹配的组的索引吗?
我的输入字符串是
String input=" 4313 :F:7222;scott miles:F:7639;Henry Gile:G:3721";
Run Code Online (Sandbox Code Playgroud)
它是一个带分号分隔符的字符串.它可以包含由分号分隔的任意数量的值
我想在java中使用组捕获功能并捕获以下值(即:分隔)
4313 :F:7222
scott miles:F:7639
Henry Gile:G:3721
Run Code Online (Sandbox Code Playgroud)
我知道我可以在Spring类下使用split函数但是出于某种原因我想在这里使用组捕获.
我试过了
Matcher myMatcher = Pattern.compile("(.*?);").matcher(input);
while (myMatcher.find()) {
System.out.println("group is " + myMatcher.group());
}
Run Code Online (Sandbox Code Playgroud)
输出是
group is 4313 :F:7222;
group is scott miles:F:7639;
Run Code Online (Sandbox Code Playgroud)
但预期的产出是
group is 4313 :F:7222
group is scott miles:F:7639
group is Henry Gile:G:3721
Run Code Online (Sandbox Code Playgroud)
我没有得到如何捕获最后一个分号后的最后一个值,我也想摆脱分号,正如我在预期的结果中提到的那样.
我想使用正则表达式组替换字符串golang,如下所示python:
re.sub(r"(\d.*?)[a-z]+(\d.*?)", r"\1 \2", "123abc123") # python code
Run Code Online (Sandbox Code Playgroud)
那么如何在golang中实现呢?
使用 Google re2 https://github.com/google/re2/blob/master/doc/syntax.txt
从几行像
- 我爱摇滚
- 我爱摇滚和剪刀
- 我讨厌纸
- 我喜欢石头、纸和剪刀
- 我会爱自己
我想从每一行中提取“岩石”、“纸”和“剪刀”。我希望正则表达式匹配以上所有五行,并在找到某些东西的地方给我石头、纸和剪刀。我主要在 Google 表格中使用它,但任何 Google re2 正则表达式都应该有所帮助。
我试过了:
".*(([Rock]{0,4})).*"
".*(([Rock]{4})|([Rock]{0})).*"
=REGEXEXTRACT(A2,".*(Rock{0,2}).*(paper{0,2}).*(scissors{0,2}).*")
以及从任何行获取 Rock 的多个其他组合(如果存在)......但是,它总是更喜欢零而不是四个......即使它找到 Rock ,它也会返回空字符串。如果我用 {1} 替换 {0},即使找到了完整的 Rock,我也会得到“k”。
有任何想法吗?
有人可以向我解释为什么这是差异:
my $num = '>33*1311875297587*eval*0*frame[0]*"A"<' =~ /(\d{3,})/;
> $num = 1
my ($num) = '>33*1311875297587*eval*0*frame[0]*"A"<' =~ /(\d{3,})/;
> $num = 1311875297587
Run Code Online (Sandbox Code Playgroud)
我很好奇看到有什么恶作剧在等我.
谢谢
我想要一个正则表达式接受:
0123456789-.@_我试过了 :
^(?=.*[A-Za-z])(?=.*\d)(?=.*[._@-])[A-Za-z\d._@-]{1,40}$
Run Code Online (Sandbox Code Playgroud) 我写了如下的正则表达式:
/^(\d{4}\-\d\d\-\d\d)|(\d{4}\-\d\d\-\d\d([tT][\d:\.]*){1})([zZ]|([+\-])(\d\d):?(\d\d))?$/.test("1995-01-01")Run Code Online (Sandbox Code Playgroud)
它工作正常,但是即使我输入了错误的格式也返回true作为值,请参考以下屏幕截图:
我有一个包含以下字段的表:
t:([]id:til 5; field:("abc_xy_ef";"abc_ef";"abc_de";"abc_xy_uv";"abc_ef_ghi"))
id field
---------------
0 "abc_xy_ef"
1 "abc_ef"
2 "abc_de"
3 "abc_xy_uv"
4 "abc_ef_ghi"
Run Code Online (Sandbox Code Playgroud)
我只想选择字段遵循模式的行,"abc_[anything]_ef[anything]"以使结果表为:
id field
---------------
0 "abc_xy_ef"
1 "abc_ef"
4 "abc_ef_ghi"
Run Code Online (Sandbox Code Playgroud)