我正在使用正则表达式,它将仅在输入字符串中验证完整复杂的英国邮政编码.所有不常见的邮政编码表格都必须与通常一样.例如:
火柴
没有比赛
是否有任何官方甚至半官方的正则表达式用于此类事情?有关格式化和存储在数据库中的任何其他建议吗?
我是正则表达式的新手.我正在尝试解析以下类型的字符串:
description:"aoeu"
哪里有任意键:里面有"val"对.我想抓住关键名称和价值.对于那些好奇的我正在尝试解析任务战士的数据库格式.这是我的测试字符串:
description:"aoeu"这是为了强调除了空格之外的任何东西都可以在键或值中,冒号周围没有空格,值总是用双引号.在节点中,这是我的输出:
[key:"val" key2:"val2"]
Run Code Online (Sandbox Code Playgroud)
但description:"aoeu"也符合这种模式.我怎样才能把所有比赛都拿回来?
在Python中,(?P<group_name>…) 语法允许通过其名称引用匹配的字符串:
>>> import re
>>> match = re.search('(?P<name>.*) (?P<phone>.*)', 'John 123456')
>>> match.group('name')
'John'
Run Code Online (Sandbox Code Playgroud)
"P"代表什么?我在官方文档中找不到任何提示.
我很想知道如何帮助我的学生记住这种语法.知道"P"代表什么(或可能代表什么)会很有用.
我怎么能代替foobar用foo123bar?
这不起作用:
>>> re.sub(r'(foo)', r'\1123', 'foobar')
'J3bar'
Run Code Online (Sandbox Code Playgroud)
这有效:
>>> re.sub(r'(foo)', r'\1hi', 'foobar')
'foohibar'
Run Code Online (Sandbox Code Playgroud)
我认为这是一个常见的问题\number.任何人都可以给我一个如何处理这个问题的提示吗?
我有一个单词列表:
bau
ceu
diu
fou
gau
Run Code Online (Sandbox Code Playgroud)
我想将该列表转换为:
byau
cyeu
dyiu
fyou
gyau
Run Code Online (Sandbox Code Playgroud)
我没有成功尝试这个命令:
:%s/(\w)(\w\w)/\1y\2/g
Run Code Online (Sandbox Code Playgroud)
鉴于这不起作用,我需要更改什么才能使正则表达式捕获组在Vim中工作?
我正在使用rubular.com来构建我的正则表达式,他们的文档描述了以下内容:
(...) Capture everything enclosed
(a|b) a or b
Run Code Online (Sandbox Code Playgroud)
如何使用OR表达式而不捕获其中的内容?例如,假设我要捕获"ac"或"bc".我不能使用正则表达式
(a|b)(c)
Run Code Online (Sandbox Code Playgroud)
对?从那时起,我在一组中捕获"a"或"b",在另一组中捕获"c",而不是相同.我知道我可以过滤捕获的结果,但这似乎更多的工作......
我错过了一些明显的东西吗 我在Java中使用它,如果这是相关的.
我有这个代码,我想知道,如果我只能替换Java正则表达式中的组(不是所有模式).码:
//...
Pattern p = Pattern.compile("(\\d).*(\\d)");
String input = "6 example input 4";
Matcher m = p.matcher(input);
if (m.find()) {
//Now I want replace group one ( (\\d) ) with number
//and group two (too (\\d) ) with 1, but I don't know how.
}
Run Code Online (Sandbox Code Playgroud) 有没有办法使用正则表达式语法直接替换所有组?
正常方式:
re.match(r"(?:aaa)(_bbb)", string1).group(1)
Run Code Online (Sandbox Code Playgroud)
但我希望实现这样的目标:
re.match(r"(\d.*?)\s(\d.*?)", "(CALL_GROUP_1) (CALL_GROUP_2)")
Run Code Online (Sandbox Code Playgroud)
我想从Regex捕获的组中即时构建新字符串.
我需要捕获相同模式的多个组.假设,我有一个以下字符串:
HELLO,THERE,WORLD
Run Code Online (Sandbox Code Playgroud)
我写了一个以下模式
^(?:([A-Z]+),?)+$
Run Code Online (Sandbox Code Playgroud)
我想要它做的是,捕获每一个单词,以便第1组是:"你好",第2组是"THERE"而第3组是"WORLD"我的正则表达式实际上只捕获最后一个,这是"世界".
我测试我的正则表达式在这里,我想与斯威夫特使用它(也许有斯威夫特一种方式来获得中间结果不知怎么的,这样我就可以使用它们?)
更新:我不想使用split.我现在只需要捕获所有匹配模式的组,而不仅仅是最后一组.
regex ×10
regex-group ×10
python ×3
capture ×1
java ×1
javascript ×1
numbers ×1
postal-code ×1
regex-greedy ×1
replace ×1
swift ×1
taskwarrior ×1
validation ×1
vim ×1